当前位置: 首页 > news >正文

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

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

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

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

 一、先引入maven

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

<dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.4.0</version>
</dependency>

二、关键代码调用

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

Map<String, Object> map = new HashMap<String, Object>();//关键数据源对象
//引入模板,注意,此处路径是相对与项目的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<String, Object> map = new HashMap<String, Object>();//关键数据源对象//封装业务数据
Map<String,String> objInfo = new HashMap<String, Object>();
objInfo.put("Aennr","1000009");
objInfo.put("kgChr02","备注XXX");
objInfo.put("Rlkey","状态XXX");List<Map<String,String>> list = new ArrayList<>();
Map<String,String> m1= new HashMap<String, Object>();
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 官方文档

http://www.lryc.cn/news/235301.html

相关文章:

  • postgresql:记录表膨胀引起的io问题的处理
  • Windows下安装RabbitMQ
  • 广州华锐互动VRAR:利用VR开展刑事案件公安取证培训,沉浸式体验提升实战能力
  • 消息消费过程
  • 使用Lychee搭建个人图片存储系统并进行远程访问设置实现公网访问本地私人图床
  • 12-2- DCGAN -简单网络-卷积网络
  • Redis持久化策略之RDB与AOF
  • Python学习笔记--初识 Python 正则表达式
  • webAPP基础学习
  • RIP路由信息协议
  • kubernetes 高可用集群
  • java实现插入排序
  • 深度学习之基于YoloV5血红细胞检测识别系统
  • 8、可视化高斯滤波器并完成高斯滤波
  • Linux MMC子系统 - 5.eMMC 5.1工作模式-引导模式
  • 2342. 数位和相等数对的最大和 --力扣 --JAVA
  • linux如何重置root密码
  • Java 类之 java.util.Properties
  • 我遇到的bug(活动)
  • MIB 6.1810实验Xv6 and Unix utilities(3)pingpong
  • 压力测试总共需要几个步骤?思路总结篇
  • 03_面向对象高级_多态
  • 【Kingbase FlySync】界面化管控平台:2.配置数据库同步之KES>KES
  • 企业计算机服务器中了mallox勒索病毒怎么解决,勒索病毒解密文件恢复
  • Sonar生成PDF错误Can‘t get Compute Engine task status.Retry..... HTTP error: 401
  • storage和正则表达式
  • 【数据结构】图的广度优先遍历
  • AM@函数展开成幂级数@间接法@常用麦克劳林幂级数展开公式
  • LeetCode994.腐烂的橘子
  • 【开源】基于Vue和SpringBoot的康复中心管理系统