easyexcel 导出文档(笔记)
阅读官方文档(很有必要)
初次使用官方有一些必读信息,如:依赖版本冲突问题。能正常跑起来不报错是第一步!!!
实体类部分的依据文档
导出文档功能主要代码
java 部分
try{
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("测试", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), ErrorEntity.class).sheet("模板").doWrite(errorEntityList);
} catch (Exception e){
logger.error("下载文件失败,失败原因{}", e.getMessage());
// 重置response
response.reset();
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
response.getWriter().println(R.error());
}
vue部分
this.$http({
url: this.$http.adornUrl(`metadata/error/download/${
this.orgId}`),
method: get,
responseType: blob
}).then(response => {
console.log(response)
if (response) {
let blob = new Blob([response.data],{
type: "multipary/form-data" })
let downElement = document.createElement(a)
downElement.href = window.URL.createObjectURL(blob)
downElement.download = decodeURI(Date.now()+.xlsx)
document.body.appendChild(downElement)
downElement.click()
document.body.removeChild(downElement)
this.$message.success(下载成功)
} else {
this.$message.error(下载文件失败)
}
})
采用的依赖版本 注意依赖冲突,查看easyexcel的jar包你会发现里面已经存有poi-ooxml依赖
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> <!-- excel工具 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>3.0.5</version> </dependency>
