springboot 文件下载Workbook
时间: 2023-10-16 08:15:23 浏览: 159
可以使用 Apache POI 库来生成 Excel 文件,并通过 Spring Boot 提供的 MVC 架构实现下载功能。以下是一个简单的示例代码:
```java
@GetMapping("/download")
public ResponseEntity<Resource> downloadExcel() throws IOException {
// 创建 Excel 文档
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Hello, world!");
// 将 Excel 文档写入字节数组输出流
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
workbook.write(outputStream);
// 创建 Resource 对象,用于包装字节数组输出流
ByteArrayResource resource = new ByteArrayResource(outputStream.toByteArray());
// 设置响应头信息
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=example.xlsx");
// 返回 ResponseEntity 对象
return ResponseEntity.ok()
.headers(headers)
.contentLength(resource.contentLength())
.contentType(MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))
.body(resource);
}
```
在上面的代码中,我们创建了一个名为 `downloadExcel` 的 GET 请求处理方法,生成一个包含一行文本数据的 Excel 文档,并将其写入一个字节数组输出流中。然后,我们用 ByteArrayResource 对象包装字节数组输出流,并设置响应头信息,最后返回一个 ResponseEntity 对象,用于将 Excel 文件作为附件下载到客户端。
需要注意的是,上述代码中使用了 Apache POI 的 XSSFWorkbook 类来创建 Excel 文档,这要求项目中已经引入了 Apache POI 相关依赖。此外,需要在 Spring Boot 应用程序的配置文件中添加以下配置,以限制文件上传大小:
```
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
```
阅读全文