java使用hutool进行导出

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);
}
### 使用 Hutool 库在 Java导出 TXT 文件 尽管 Hutool 主要用于简化常见的开发任务,比如操作 Excel 和其他文件格式,但它同样可以用来处理简单的文本文件(如 TXT)。以下是基于 Hutool 的方法来实现导出 TXT 文件的功能。 #### 1. 添加依赖 为了使用 Hutool 工具库,首先需要将其添加到项目的 `pom.xml` 文件中。如果项目尚未集成该库,则需先完成此步骤: ```xml <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.20</version> </dependency> ``` 上述版本号可以根据实际需求调整[^3]。 #### 2. 实现代码示例 下面展示了一个完整的控制器层代码片段,演示如何通过 Servlet 输出流将数据写入客户端浏览器并保存为 TXT 文件。 ```java import cn.hutool.core.io.IoUtil; import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; public class TxtExportController { public void exportTxt(HttpServletResponse response) { try { // 设置响应头信息 response.reset(); response.setContentType("application/octet-stream"); response.setCharacterEncoding("UTF-8"); String fileName = "example.txt"; response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(fileName, "UTF-8")); OutputStream outputStream = response.getOutputStream(); // 准备要写出的数据 StringBuilder contentBuilder = new StringBuilder(); contentBuilder.append("这是第一行内容\n"); contentBuilder.append("这是第二行内容\n"); contentBuilder.append("更多行的内容..."); // 将字符串写入输出流 IoUtil.write(outputStream, true, contentBuilder.toString().getBytes("UTF-8")); outputStream.flush(); outputStream.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 在此代码中,我们利用了 Hutool 提供的 `IoUtil` 类来进行高效的 IO 流操作[^1]。注意设置字符编码为 UTF-8 是为了避免中文或其他特殊字符出现乱码的情况[^2]。 #### 3. 关键点说明 - **ContentType**: 这里设定了 MIME 类型为 `"application/octet-stream"` 表明这是一个二进制下载请求。 - **Character Encoding**: 明确指定编码方式有助于防止因不同平台默认编码差异而导致的显示错误。 - **FileName Header**: URL 编码后的文件名确保即使含有非 ASCII 字符也能被大多数浏览器正确解析。 ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值