Apache POI - 使用 XSSFWorkbok + servlet 响应

excel

1个回答

写回答

muomuomuo

2025-06-19 06:05

+ 关注

Java
Java

使用Apache POI库可以方便地在Java程序中处理excel文件。其中,XSSFWorkbook是POI库中用于处理excel 2007及以上版本文件的类。在结合servlet技术时,我们可以使用XSSFWorkbook来生成excel文件,并通过servlet响应给客户端。

下面是一个使用XSSFWorkbook和servlet技术生成excel文件的示例代码:

Java

@WebServlet("/downloadexcel")

public class excelServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setcontentType("application/vnd.openXMLformats-officedocument.spreadsheetml.sheet");

response.setHeader("Content-Disposition", "attachment; filename=\"example.xlsx\"");

try (XSSFWorkbook workbook = new XSSFWorkbook()) {

XSSFSheet sheet = workbook.createSheet("Sheet1");

// 创建标题行

XSSFRow headerRow = sheet.createRow(0);

headerRow.createCell(0).setcellValue("姓名");

headerRow.createCell(1).setcellValue("年龄");

// ...

// 创建数据行

XSSFRow dataRow = sheet.createRow(1);

dataRow.createCell(0).setcellValue("张三");

dataRow.createCell(1).setcellValue(20);

// ...

// 将excel文件写入输出流

try (OutputStream outputStream = response.getOutputStream()) {

workbook.write(outputStream);

}

}

}

}

上述代码中,我们首先通过@WebServlet注解将excelServlet类映射到"/downloadexcel"路径。在doGet方法中,我们设置响应的Content-Type为"application/vnd.openXMLformats-officedocument.spreadsheetml.sheet",表示响应的是excel文件。然后,设置Content-Disposition头部,将生成的excel文件作为附件下载。

接下来,我们使用XSSFWorkbook创建一个新的excel工作簿,并在工作簿中创建一个名为"Sheet1"的工作表。然后,我们创建标题行和数据行,并设置相应的单元格值。

最后,我们通过response的输出流将生成的excel文件写入到客户端。

这样,当客户端请求"/downloadexcel"路径时,就会触发excelServlet的doGet方法,生成并响应一个excel文件。

使用Apache POI的XSSFWorkbook类和servlet技术,我们可以方便地在Java程序中生成和响应excel文件。通过创建工作簿、工作表以及设置单元格的值,我们可以自定义excel文件的内容。这种方式非常适用于需要动态生成excel文件并提供下载的场景。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号