jxls -excel模板报表生成工具
关于java对于导出excel的工具有很多,如Apache poi、alibaba的easyexcel、jxl、hutool等,但是对于表头的映射,比较麻烦,如果数据是Map,通过注解的方法就没法处理表头。
在不关注如何映射表头是,想到有模板的方式,那就是用 jxls 工具。
各种工具的效率问题先不讨论。
JXLS
jxls是一个简单的、轻量级的excel导出库,使用特定的标记在excel模板文件中来定义输出格式和布局。
jxls是通过预制excel模板,然后通过jxls相应API将我们应用程序的数据结合模板格式输出到相应的excel文件中,从而形成报表。
示例如下:
1、导出如下报表数据
2、excel模板
说明:其中C列和H列,使用了自定义方法;C列方法的作用是将字典code转换为name文字值,H列方法的作用是计算D->G列的和。
数据如下:
{ "list": [ { "saleId": 1347929495306274, "saleName": "测试业绩目标-教务", "schoolId": 31, "schoolName": "绍兴本部校", "svList": [ { "data": { "1": 2, "2": 0, "3": 0, "4": 0 }, "svType": 1 }, { "data": { "1": 1, "2": 0, "3": 0, "4": 0 }, "svType": 2 }, { "data": { "1": 1, "2": 0, "3": 0, "4": 0 }, "svType": 4 }, { "data": { "1": 0.50, "2": 0, "3": 0, "4": 0 }, "svType": 3 }, { "data": { "1": 0.50, "2": 0, "3": 0, "4": 0 }, "svType": 5 } ] }, { "schoolName": "总计", "svList": [ { "data": { "1": 37, "2": 0, "3": 2, "4": 0 }, "svType": 1 }, { "data": { "1": 33, "2": 0, "3": 2, "4": 0 }, "svType": 2 }, { "data": { "1": 38, "2": 0, "3": 2, "4": 0 }, "svType": 4 }, { "data": { "1": 0.89, "2": 0, "3": 1.00, "4": 0 }, "svType": 3 }, { "data": { "1": 1.03, "2": 0, "3": 1.00, "4": 0 }, "svType": 5 } ] } ] }
3、导出方法代码片段
项目引入jxls
<!-- jxls --> <dependency> <groupId>org.jxls</groupId> <artifactId>jxls</artifactId> <version>2.4.6</version> </dependency> <dependency> <groupId>org.jxls</groupId> <artifactId>jxls-poi</artifactId> <version>1.0.15</version> </dependency>