【分享】使用一个Excel模板就能搞定Excel复杂表头样式

最近项目里用到复杂表头excel导出。

复杂表头,一般就是有很多合并单元格了,使用POI直接去写的话呢,只需要操作合并单元格,写入合并单元格数据就好了。

image.png

但是写代码的方式定制表头,太啰嗦,列多了,表头复杂了,写的代码很啰嗦。

JBolt平台里提供了关于合并单元格的封装,动态输出复杂表头是没问题,但是写代码也是很多。

image.png

有兴趣可以看一下JBolt动态导出复杂表头的视频教程:

http://jfinalxueyuan.com/jiaocheng/jbolt/006.html


那么,除了使用专业报表设计工具去设计或者使用代码输出之外,还可以通过Excel文件里设计好复杂表头样式,以此作为表头模板,先加载到模板,然后再写出自己需要的数据部分,最后导出一个新的excel就搞定了。

那好,思路有了,代码写出来就行了!

一、普通POI方式实现

熟悉POI的人都知道,Excel导出的步骤:

image.png

那么,如果需要依赖一个模板,添加自己的数据再导出呢,就需要创建工作簿的时候,基于一个已存在的模板文件了。

FileInputStream is = new FileInputStream(filePath);     //模板文件 转化流
HSSFWorkbook wbs = new HSSFWorkbook(is);

这样创建出来的工作簿,就带着模板里的数据了,然后自己填充其它数据即可。

二、Hutool的Excel工具类实现

Hutool里提供了相关的工具类

ExcelUtil、WorkbookUtil、RowUtil、CellUtil等

比原生POI代码要写的舒服一些。

WorkBook workbook=WorkbookUtil.createBook(FileUtil.getInputStream(excelTplPath), true);
ExcelWriter excelWriter=new ExcelWriter(workbook, sheetName);

只需要从复杂表头模板文件创建一个WorkBook,通过这个workBook创建出ExcelWriter就可以,带上自己的新数据就可以导出复杂表头版Excel文件了。


三、JBolt极速开发平台

JBolt极速开发平台里做了极简调用处理,轻松完成各种导出操作,基于JBolt针对普通的报表导出,分分钟搞定啦!!

查看JBolt极速开发平台,所有关于Excel导入导出解决方案的视频教程-都在这里了:

http://jfinalxueyuan.com/jiaocheng/jbolt/index.html


关注JFinal学院公众号(jfinalxueyuan)

 

JFinal学院群:362557641 JFinal学院


评论区

久伴轻尘

2020-07-24 09:07

小木老师要不试试easyexcel,那个好像更简单

山东小木

2020-07-24 12:42

@久伴轻尘 用过不符合要求

山东小木

2020-07-24 12:43

@久伴轻尘 jfinal的model和record不适合 这种靠注解和javaBean的工具

久伴轻尘

2020-07-24 14:20

@山东小木 确实model和record不符合要求,我在导出的时候默认做的是自己做了一个导出bean

山东小木

2020-11-09 11:45

@久伴轻尘 jbolt里专门为jfinal的model和record定制的方案

热门分享

扫码入社