文章目录
前言一、easyExcel是什么?二、使用步骤1.引入库2.Excel文件模板与pom配置3.代码
总结
前言
最近公司有个需求需要使用到EasyExcel的模板填充功能,使用过程中遇到了本地环境调试和打包上传服务器发布后失效的一些坑,这里记录一下,希望对遇到这些问题的人有所帮助。
一、easyExcel是什么?
废不多说直接上干货,对于暂时不太了解的童鞋可以参考官方文档,链接:easyExcel官网入口
二、使用步骤
1.引入库
代码如下:
<!--pom中引入jar
-->
<dependency
>
<groupId
>com
.alibaba
</groupId
>
<artifactId
>easyexcel
</artifactId
>
<version
>2.1.6</version
>
</dependency
>
2.Excel文件模板与pom配置
如下:
Excel文件模板 pom配置(该配置主要针对maven项目打包后会把文件进行编码,此处配置过滤掉编码
3.代码
try
{
InputStream resourceAsStream
= this
.getClass().getClassLoader().getResourceAsStream("templates/XXXX.xlsx");
ExcelWriter excelWriter
= EasyExcel
.write(ExcelUtils
.getOutputStream("XXXX",httpServletResponse
)).withTemplate(resourceAsStream
).build();
WriteSheet writeSheet
= EasyExcel
.writerSheet().build();
excelWriter
.fill(list
, writeSheet
);
excelWriter
.finish();
} catch
(Exception e
) {
throw e
;
}
public
static OutputStream
getOutputStream(String fileName
, HttpServletResponse response
) {
try
{
fileName
= URLEncoder
.encode(fileName
, "UTF-8");
response
.setContentType("application/vnd.ms-excel");
response
.setCharacterEncoding("utf8");
response
.setHeader("Content-Disposition", "attachment; filename=" + fileName
+ ".xls");
response
.setHeader("Pragma", "public");
response
.setHeader("Cache-Control", "no-store");
response
.addHeader("Cache-Control", "max-age=0");
return response
.getOutputStream();
} catch
(IOException e
) {
log
.error("导出excel表格失败", e
);
}
}
总结
EasyExcel虽然已经出来很久了,但是往往都是直接调用别人封装好的接口,自己去调试的机会比较少,这里遇到了相关问题,在这里记录一下,一点点成长。