Java集成Hutool实现导出Excel功能

在工作中刚完成项目集成Hutool实现导出Excel功能,现在记录一下实现过程,方便以后作为例子参考。

Hutool简介

Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。它最初是作者项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。
参考文档:https://www.hutool.cn/docs/#/

Hutool安装

Maven

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>4.6.1</version>
</dependency>

Gradle

compile 'cn.hutool:hutool-all:4.6.1'

Excel生成

实现功能前,我们需要先引入jar包,以下提供两种引入方式:
JAR包查询网址:https://mvnrepository.com/

Maven

<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.11.0</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.17</version>
</dependency>

Gradle

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以上,否则可能报错

ExcelWriter

这里对数据进行导出操作是根据我的业务实际情况来做的,背景为将数据查询出来封装成List集合再进行Excel导出

List<OgClaim> ogClaimList = ogClaimMapper.getList(claimChkId);
List<OgClaim> 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", "投保结果");

所有数据库字段均为虚拟字段

//一次性写出内容,使用默认样式,强制输出标题
writer.write(rows, true);
//关闭writer释放内存
writer.close();

BigExcelWriter

对于大量数据输出,采用ExcelWriter容易引起内存溢出,因此有了BigExcelWriter,使用方法与ExcelWriter完全一致。只需要将创建writer语句修改成如下代码即可,其他语句不变:

//通过工具类创建writer
BigExcelWriter writer = ExcelUtil.getBigWriter("文件路径.xlsx");

Excel

最终效果图:
Excel

总结

总体来说Hutool这个工具包功能还是很强大的,包含了非常多的工具类,我这里对Excel导出的操作是比较简单的,在文档中还提供了自定义样式可供使用。对于这篇文章我还是要说声对不起,太懒了不想打字,貌似也没有什么可以说的,看代码就好了。

Last modification:August 16th, 2019 at 03:04 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment