Spring Boot EasyPOI 使用指定模板导出Excel

相信大家都遇到过,用户提出要把界面上的数据导成一个Excel,还得是用户指定的Excel格式,用原生的POI,需要自己去实现,相信是比较麻烦的,所以我们可以使用开源的EasyPOI.

先上个图,看看是不是大家想要的效果.

Spring Boot EasyPOI 使用指定模板导出Excel_第1张图片

如图,是一个Demo导出模板,可以看到里面用了一些easy poi的公式,有了这个模板之后,我们只需要把需要的数据源形成后,调用接口就可以实现导出指定格式的模板了!

 一、先引入maven

        我们需要在指定模块中的pom.xml引入依赖包,如下:


    cn.afterturn
    easypoi-spring-boot-starter
    4.4.0

二、关键代码调用

引入依赖包之后,我们可以先看一下关键的代码使用,如下:

Map map = new HashMap();//关键数据源对象
//引入模板,注意,此处路径是相对与项目的resource目录下的,不需要自行去找到绝对路径
TemplateExportParams params = new TemplateExportParams("template/模板名称.xls"); //模板路径
params.setSheetNum(new Integer[]{0,1});//设置多个Sheet(若有多个Sheet,需要加入此代码)
Workbook workbook = ExcelExportUtil.exportExcel(params, map);//easyPOI的工具类
OutputStream out = response.getOutputStream();
workbook.write(out);
out.flush();
out.close();

如上的关键代码,也就几句而已,可以看到,我们只需要找到我们的模板路径,然后把我们的业务数据封装好传给工具类,就完成了。

三、示例

有了上述的关键代码,我们根据开头的示例图,封装成指定格式,如下:

Map map = new HashMap();//关键数据源对象

//封装业务数据
Map objInfo = new HashMap();
objInfo.put("Aennr","1000009");
objInfo.put("kgChr02","备注XXX");
objInfo.put("Rlkey","状态XXX");

List> list = new ArrayList<>();
Map m1= new HashMap();
m1.put("Ztype","变更");
m1.put("Idnrk","123");
m1.put("Zmaktx","描述");
list.add(m1);

map.put("info", objInfo);
map.put("list", list);

TemplateExportParams params = new TemplateExportParams("template/模板名称.xls"); //模板路径
params.setSheetNum(new Integer[]{0,1});//设置多个Sheet(若有多个Sheet,需要加入此代码)
Workbook workbook = ExcelExportUtil.exportExcel(params, map);//easyPOI的工具类
OutputStream out = response.getOutputStream();
workbook.write(out);
out.flush();
out.close();

我们可以看到,只需要往map中丢入指定内容即可显示在模板中。

EasyPOI支持很多内容,公式等,详情可查看easyPOI的官方文档.

easy poi 官方文档

你可能感兴趣的:(springBoot,excel,spring,boot,java,后端)