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>