原文来自:https://www.j1angrui.cn/article/2019081623
在工作中刚完成项目集成Hutool实现导出Excel功能,现在记录一下实现过程,方便以后作为例子参考。
Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。它最初是作者项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。
参考文档:https://www.hutool.cn/docs/#/
cn.hutool
hutool-all
4.6.1
compile 'cn.hutool:hutool-all:4.6.1'
实现功能前,我们需要先引入jar包,以下提供两种引入方式:
JAR包查询网址:https://mvnrepository.com/
xerces
xercesImpl
2.11.0
org.apache.poi
poi-ooxml
3.17
org.apache.poi
poi
3.17
implementation 'org.apache.poi:poi:3.17'
implementation 'org.apache.poi:poi-ooxml:3.17'
implementation 'xerces:xercesImpl:2.11.0'
poi-ooxml和poi的版本尽量保持在3.17以上,否则可能报错
这里对数据进行导出操作是根据我的业务实际情况来做的,背景为将数据查询出来封装成List集合再进行Excel导出
List ogClaimList = ogClaimMapper.getList(claimChkId);
List rows = CollUtil.newArrayList(ogClaimList);
//通过工具类创建writer
ExcelWriter writer = ExcelUtil.getWriter("文件路径.xlsx");
writer.addHeaderAlias(“数据库字段”, “别名”);
//自定义标题别名
writer.addHeaderAlias("insureId", "ID");
writer.addHeaderAlias("chk_id", "投保审核订单ID");
writer.addHeaderAlias("number", "订单号");
writer.addHeaderAlias("name", "客户姓名");
writer.addHeaderAlias("idno", "客户身份证号码");
writer.addHeaderAlias("mobile", "合约手机号");
writer.addHeaderAlias("amount", "合约贷款金额");
writer.addHeaderAlias("duration", "合约期限");
writer.addHeaderAlias("time", "竣工时间");
writer.addHeaderAlias("area", "地区");
writer.addHeaderAlias("city", "城市");
writer.addHeaderAlias("hall", "营业厅");
writer.addHeaderAlias("suppliername", "供应商名称");
writer.addHeaderAlias("mobile", "翼支付手机号");
writer.addHeaderAlias("stage", "保险阶段");
writer.addHeaderAlias("status", "效验状态");
writer.addHeaderAlias("result", "效验结果");
writer.addHeaderAlias("chkperson", "审核人");
writer.addHeaderAlias("number", "交易号");
writer.addHeaderAlias("result", "投保结果");
[scode type=“yellow”]所有数据库字段均为虚拟字段[/scode]
//一次性写出内容,使用默认样式,强制输出标题
writer.write(rows, true);
//关闭writer释放内存
writer.close();
对于大量数据输出,采用ExcelWriter容易引起内存溢出,因此有了BigExcelWriter,使用方法与ExcelWriter完全一致。只需要将创建writer语句修改成如下代码即可,其他语句不变:
//通过工具类创建writer
BigExcelWriter writer = ExcelUtil.getBigWriter("文件路径.xlsx");
总体来说Hutool这个工具包功能还是很强大的,包含了非常多的工具类,我这里对Excel导出的操作是比较简单的,在文档中还提供了自定义样式可供使用。