Springboot 前后端分离项目使用 POI 生成并导出 Excel的操作方法
在做一个 SpringBoot 前后端分离项目的时候,需要将数据存到 Excel中,用户可以下载 Excel。具体实现是采用 Apache 强大的 POI。文章最后将源码例出。

POI API 文档: https://poi.apache.org/apidocs/dev/index.html
步骤
1.导入 POI 的 maven 依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.1.0</version>
</dependency>2.使用 produces 设置响应类型和编码为 “application/octet-stream”。
@RequestMapping(value = "/down", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
3.通过使用 SXSSFWorkbook 设置 Excel 表
SXSSFWorkbook workbook = new SXSSFWorkbook();
//设置表格名称
SXSSFSheet sheet = workbook.createSheet("销售榜单");
//设置表格默认宽度30
sheet.setDefaultColumnWidth(30);
//设置 sheet 表格的第0行
SXSSFRow row = sheet.createRow(0);
//设置 sheet 表格的第0行第0列的值
row.createCell(0).setCellValue("商品名称");
//设置 sheet 表格的第0行第1列的值
row.createCell(1).setCellValue("数量");4.设置响应头
//设置响应头
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
//filename 为 Excel 文件名称5.获取 response 的输出流,通过输出流将 Excel 输出。
//将 Excel 表输出到输出流 OutputStream out = response.getOutputStream(); workbook.write(out);
样例代码
//1、通过 SXSSFWorkbook 设置 Excel 表
//2、设置响应头
//3、输出流输出
@RequestMapping(value = "/down", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public void downXlsx(HttpServletResponse response) {
//设置表名
String fileName = "销售榜单.xlsx";
SXSSFWorkbook workbook = new SXSSFWorkbook();
//设置表格名称
SXSSFSheet sheet = workbook.createSheet("销售榜单");
//设置表格默认宽度30
sheet.setDefaultColumnWidth(30);
//设置 sheet 表格的第0行
SXSSFRow row = sheet.createRow(0);
//设置 sheet 表格的第0行第0列的值
row.createCell(0).setCellValue("商品名称");
//设置 sheet 表格的第0行第1列的值
row.createCell(1).setCellValue("数量");
OutputStream out = null;
try {
//设置响应头
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
//将 Excel 表输出到输出流
out = response.getOutputStream();
workbook.write(out);
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
workbook.dispose();
try {
if (out != null)
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}到此这篇关于Springboot 前后端分离项目使用 POI 生成并导出 Excel的文章就介绍到这了,更多相关Springboot 前后端分离项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
spring中EnvironmentPostProcessor接口的实现
EnvironmentPostProcessor是SpringBoot用于动态修改环境配置的接口,本文主要介绍了spring中EnvironmentPostProcessor接口的实现,具有一定的参考价值,感兴趣的可以了解一下2025-05-05
Java 中的排序Comparable 与 Comparator 的使用与区别对比解析
本文给大家介绍Java中的排序Comparable与Comparator的使用与区别对比,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧2025-09-09
SpringBoot中application.properties与application.yml区别小结
本文主要介绍了SpringBoot中application.properties与application.yml区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-10-10


最新评论