一、Hutool介绍
Hutool:https://www.hutool.cn/
参考文档:https://hutool.cn/docs/#/
API文档:https://apidoc.gitee.com/loolly/hutool/
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
今天要讲的是excel的导出并合并单元格,其他工具类,可查看参考文档,之后也会陆续的更新一些常用工具类的用法。
二、背景
之前常用的是Apache的POI库,代码复杂、非常耗内存,严重时会导致内存溢出,并发上来,一定会OOM或频繁full gc,后来发现平时使用的Hutool工具类,也有excel的导入导出API,使用起来简单方便。Hutool-poi是针对Apache POI的封装,因此需要用户自行引入POI库,Hutool默认不引入
三、excel普通导出
引入依赖:
推荐引入poi-ooxml,这个包会自动关联引入poi包,且可以很好的支持Office2007+的文档格式
普通导出
/**
* @Author zmyhow
* @Description 普通导出excel
* @Date 11:01 2020/12/16
* @param response 响应
* @param fileName excel文件名
* @param sheetName sheet名称
* @param headers 表头别名map,有序maplinkHashMap,才能保证表头是有序的
* @param data 数据集合
* @return void
*/
public void exportExcelByHutools(HttpServletResponse response,
String fileName,
String sheetName,
Map<String, String> headers,
List<T> data) {
//通过工具类创建writer
try {
//对于大量数据输出,采用bigwriter,其他方法不变
// ExcelWriter writer = ExcelUtil.getBigWriter();
ExcelWriter writer = ExcelUtil.getWriter();
//设置sheet的名称
writer.renameSheet(sheetName);
//设置head的名称, 此时的顺序就是导出的顺序, key就是属性名称, value就是别名
headers.entrySet().forEach(entry -> {
//这个添加顺序和导出顺序相同
writer.addHeaderAlias(entry.