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>
经验分享 程序员 微信小程序 职场和发展