百万级 Excel 数据导出:Hutool 实战教程
使用 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 数据并实现浏览器下载。
原文地址: https://www.cveoy.top/t/topic/niby 著作权归作者所有。请勿转载和采集!