使用 Hutool 导出百万级 Excel 数据,浏览器导出

本文将带你一步步实现使用 Hutool 库导出百万级 Excel 数据,并直接在浏览器中进行下载。

1. 导入 Hutool 依赖

首先,在你的项目 pom.xml 文件中添加以下依赖:

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

2. 生成 Excel 文件

使用 Hutool 的 ExcelWriter 类创建 Excel 文件并写入数据。以下是一个示例:

// 数据列表
List<User> userList = userService.getUserList();

// 创建 ExcelWriter
ExcelWriter writer = ExcelUtil.getWriter('D:/user.xlsx');

// 写入表头
writer.writeHeadRow(Arrays.asList('ID', '姓名', '年龄', '性别'));

// 写入数据
for (User user : userList) {
    writer.writeRow(Arrays.asList(user.getId(), user.getName(), user.getAge(), user.getGender()));
}

// 关闭 ExcelWriter
writer.close();

3. 将 Excel 文件导出到浏览器

通过 HttpServletResponse 将生成的 Excel 文件输出到浏览器,即可实现浏览器导出。以下是一个示例:

// 获取 HttpServletResponse
HttpServletResponse response = ServletUtil.getResponse();

// 设置响应头
response.setContentType('application/vnd.ms-excel;charset=utf-8');
response.setHeader('Content-Disposition', 'attachment;filename=user.xlsx');

// 将 Excel 文件输出到响应流
FileUtil.writeToStream('D:/user.xlsx', response.getOutputStream(), true);

4. 中文文件名乱码解决

为了解决中文文件名乱码问题,需要在 web.xml 中配置 Filter。以下是一个示例:

<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

通过以上步骤,你就可以轻松使用 Hutool 库导出百万级 Excel 数据并实现浏览器下载。

百万级 Excel 数据导出:Hutool 实战教程

原文地址: https://www.cveoy.top/t/topic/niby 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录