springboot下载excel模版代码
时间: 2023-12-08 21:52:03 浏览: 96
SpringBoot下载xlsx模板,导出excel数据
以下是使用 Apache POI 库在 Spring Boot 中下载 Excel 模板的示例代码:
```java
@GetMapping("/downloadTemplate")
public ResponseEntity<InputStreamResource> downloadTemplate() throws IOException {
// 创建 Excel 工作簿
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 创建标题行,并设置单元格样式
Row titleRow = sheet.createRow(0);
CellStyle titleCellStyle = workbook.createCellStyle();
Font titleFont = workbook.createFont();
titleFont.setBold(true);
titleCellStyle.setFont(titleFont);
Cell titleCell = titleRow.createCell(0);
titleCell.setCellValue("姓名");
titleCell.setCellStyle(titleCellStyle);
titleCell = titleRow.createCell(1);
titleCell.setCellValue("年龄");
titleCell.setCellStyle(titleCellStyle);
titleCell = titleRow.createCell(2);
titleCell.setCellValue("性别");
titleCell.setCellStyle(titleCellStyle);
// 创建数据行,写入示例数据
Row dataRow = sheet.createRow(1);
Cell dataCell = dataRow.createCell(0);
dataCell.setCellValue("张三");
dataCell = dataRow.createCell(1);
dataCell.setCellValue(20);
dataCell = dataRow.createCell(2);
dataCell.setCellValue("男");
// 生成 Excel 文件
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
workbook.write(outputStream);
workbook.close();
// 设置响应头,告诉浏览器下载文件
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Disposition", "attachment; filename=template.xlsx");
// 构造 ResponseEntity,返回 Excel 文件内容
return ResponseEntity
.ok()
.headers(headers)
.contentType(MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))
.body(new InputStreamResource(new ByteArrayInputStream(outputStream.toByteArray())));
}
```
以上代码中,我们使用 `XSSFWorkbook` 类创建了一个 Excel 工作簿,并设置了标题行和示例数据。然后,将工作簿写入 `ByteArrayOutputStream` 流中,并通过 `ResponseEntity` 返回给客户端浏览器。在响应头中设置 `Content-Disposition` 属性,告诉浏览器该文件是一个附件,需要下载保存。
阅读全文