hutool 自定义excel_Hutools实现excel导出

由于代码中使用了Apache poi的excel导出,但是自己想使用easyExcel发现jar冲突。easyExcel默认使用poi 3.17的包,Apache poi使用3.9的包。我把easyExcel的依赖升级到3.9提示class找不到。折腾了很久,决定采用Hutools去封装个导出工具类。

/**

* 导出文件

* @param request

* @param response

* @param fileName 文件名

* @param sheetName

* @param headers 表头

* @param data 数据

* @param

*/

public static void exportExcelByHuTools(HttpServletRequest request,

HttpServletResponse response,

String fileName,

String sheetName,

Map headers,

List data) {

long startTime = System.currentTimeMillis();

//通过工具类创建writer

try {

ExcelWriter writer = ExcelUtil.getBigWriter();

//设置sheet的名称

writer.renameSheet(sheetName);

//设置head的名称, 此时的顺寻就是导出的顺序, key就是RecordInfoDetailsDTO的属性名称, value就是别名

headers.entrySet().forEach(entry->{

//这个添加顺序和导出顺序相同

writer.addHeaderAlias(entry.getKey(),entry.getValue());

});

writer.write(data, true);

writer.setOnlyAlias(true);

response.reset();

response.setContentType("application/vnd.ms-excel;charset=utf-8");

response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xlsx");

//中文名称需要特殊处理

writer.flush(response.getOutputStream());

writer.close();

long endTime = System.currentTimeMillis();

System.out.println("hutool 写入记录耗时 " + (endTime - startTime) / 1000 + "秒");

} catch (Exception e) {

//如果导出异常,则生成一个空的文件

log.info("######导出 excel异常 :{}", e.getMessage());

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值