spring boot导出excel文件到浏览器上
时间: 2023-07-30 10:07:08 浏览: 101
可以使用Apache POI来生成Excel文件,然后使用Spring Boot提供的`ResponseEntity`将生成的Excel文件输出到浏览器上。
以下是一个简单的示例代码:
```java
@GetMapping("/export")
public ResponseEntity<byte[]> exportExcel() throws IOException {
// 创建一个Excel工作簿
Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 创建表头
Row headerRow = sheet.createRow(0);
Cell headerCell1 = headerRow.createCell(0);
headerCell1.setCellValue("姓名");
Cell headerCell2 = headerRow.createCell(1);
headerCell2.setCellValue("年龄");
// 填充数据
Row dataRow = sheet.createRow(1);
Cell dataCell1 = dataRow.createCell(0);
dataCell1.setCellValue("张三");
Cell dataCell2 = dataRow.createCell(1);
dataCell2.setCellValue(20);
// 将Excel文件转成字节数组
ByteArrayOutputStream out = new ByteArrayOutputStream();
workbook.write(out);
byte[] bytes = out.toByteArray();
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", "test.xls");
// 返回响应实体
return new ResponseEntity<>(bytes, headers, HttpStatus.OK);
}
```
在这个示例中,我们创建了一个Excel工作簿,并填充了一些数据。然后将Excel文件转成字节数组,并将其作为响应体返回给浏览器。在响应头中,我们设置了Content-Type为application/octet-stream,表示这是一个二进制流文件,而Content-Disposition则指定了文件名为test.xls,并告诉浏览器将其作为附件下载。
阅读全文