java使用hutool进行导出

本文展示了如何使用Hutool的BigExcelWriter模块来生成和导出大型Excel文件。通过设置依赖,创建字体和单元格样式,定义表头以及调整列宽,可以方便地处理大数据并将其写入多个工作表。最后,将文件以特定格式响应给用户进行下载。

hutool地址

https://hutool.cn/docs/#/poi/Excel%E5%A4%A7%E6%95%B0%E6%8D%AE%E7%94%9F%E6%88%90-BigExcelWriter

依赖坐标

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

代码示例

List data;
List data2;

// excel导出
try (BigExcelWriter writer = (BigExcelWriter) ExcelUtil.getBigWriter()) {
    // hutool默认会给第一个sheet设置名字,使用时rename一下
    writer.renameSheet(0, "A-1表");
    // 定义单元格背景色
    Font font = writer.createFont();
    font.setBold(true);
    writer.getHeadCellStyle().setFont(font);
    for (int i = 0; i < 3; i++) {
        writer.setColumnWidth(i, 25);
    }
    // 自定义表头
    writer.addHeaderAlias("类属性名", "excel列名");
    writer.addHeaderAlias("类属性名", "excel列名");
    // 只写添加了别名的字段
    writer.setOnlyAlias(true);
    writer.write(data);

    writer.setSheet("A-2表");
    // 定义单元格背景色
    font = writer.createFont();
    font.setBold(true);
    writer.getHeadCellStyle().setFont(font);
    writer.getHeadCellStyle().setFont(font);
    for (int i = 0; i < 3; i++) {
        writer.setColumnWidth(i, 25);
    }
    // 自定义表头
    writer.addHeaderAlias("类属性名", "excel列名");
    writer.addHeaderAlias("类属性名", "excel列名");
    // 只写添加了别名的字段
    writer.setOnlyAlias(true);
    writer.write(data2);
	response.setContentType("application/vnd.ms-excel;charset=utf-8");
    String fileName = URLEncoder.encode("xxx_" + LocalDateTime.now().toLocalDate() + ".xlsx", "UTF-8");
    response.setHeader("Content-disposition", "attachment;filename=" + fileName);

    writer.flush(response.getOutputStream(), true);
} catch (Exception e) {
    log.info("导出excel异常", e);
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值