spring boot集成easyexcel解决jar包无法获取文件问题
程序员文章站
2022-07-13 14:19:54
...
1、pom文件添加如下依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
2、业务代码示例:
/**
* 导出基站开站信息列表
*/
@GetMapping("/exportList")
public void exportList(HttpServletResponse response,OpeningEnb openingEnb) throws IOException {
List<OpeningEnb> list = openingEnbService.selectOpeningEnbList(openingEnb);
InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("opening/opening.xlsx");
String fileName = "基站开通信息表.xlsx";
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-disposition","attachment;filename="+new String(fileName.getBytes(),"iso-8859-1"));
EasyExcel.write(response.getOutputStream(),OpeningEnbController.class).withTemplate(resourceAsStream).sheet().doFill(list);
}
重点:this.getClass().getClassLoader().getResourceAsStream("opening/opening.xlsx");
这个对应文件是resources/opening/opening.xlsx
EasyExcel.write(response.getOutputStream(),OpeningEnbController.class).withTemplate(resourceAsStream).sheet().doFill(list);
3、业务示例代码-2:
/**
* 下载基站开站信息
*/
@GetMapping("/export")
public void export(HttpServletResponse response,String enodebId) throws IOException {
List<LinkedHashMap> list = openingEnbService.selectOpeningEnbAndCelById(enodebId);
String vendor_name = list.get(0).get("vendor_name").toString();
InputStream resourceAsStream = null;
String fileName = "";
switch (vendor_name){
case "华为":
resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("opening/huawei.xlsx");
fileName = "华为基站开通信息表.xlsx";
break;
case "中兴":
resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("opening/zhongxing.xlsx");
fileName = "中兴基站开通信息表.xlsx";
break;
case "爱立信":
resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("opening/ailixin.xlsx");
fileName = "爱立信基站开通信息表.xlsx";
break;
}
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-disposition","attachment;filename="+new String(fileName.getBytes(),"iso-8859-1"));
EasyExcel.write(response.getOutputStream(),OpeningEnbController.class).withTemplate(resourceAsStream).sheet().doFill(list);
}
如果没成功请仔细检查重点代码是否照写了:
InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("opening/opening.xlsx");
EasyExcel.write(response.getOutputStream(),OpeningEnbController.class).withTemplate(resourceAsStream).sheet().doFill(list);
上一篇: POI对Excel的各种操作
下一篇: java Excel操作工具类