最近项目里用到复杂表头excel导出。
复杂表头,一般就是有很多合并单元格了,使用POI直接去写的话呢,只需要操作合并单元格,写入合并单元格数据就好了。
但是写代码的方式定制表头,太啰嗦,列多了,表头复杂了,写的代码很啰嗦。
JBolt平台里提供了关于合并单元格的封装,动态输出复杂表头是没问题,但是写代码也是很多。
有兴趣可以看一下JBolt动态导出复杂表头的视频教程:
http://jfinalxueyuan.com/jiaocheng/jbolt/006.html
那么,除了使用专业报表设计工具去设计或者使用代码输出之外,还可以通过Excel文件里设计好复杂表头样式,以此作为表头模板,先加载到模板,然后再写出自己需要的数据部分,最后导出一个新的excel就搞定了。
那好,思路有了,代码写出来就行了!
一、普通POI方式实现
熟悉POI的人都知道,Excel导出的步骤:
那么,如果需要依赖一个模板,添加自己的数据再导出呢,就需要创建工作簿的时候,基于一个已存在的模板文件了。
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)