写一个导出Excel的后端接口
时间: 2024-01-30 10:03:53 浏览: 62
springboot 实现后端接口操作Excel的导出、批量导入功能
好的,以下是一个使用Java实现的后端导出Excel接口:
```java
@GetMapping("/export")
public ResponseEntity<byte[]> exportExcel() throws IOException {
// 构造Excel文档
Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Row row = sheet.createRow(0);
row.createCell(0).setCellValue("姓名");
row.createCell(1).setCellValue("年龄");
row.createCell(2).setCellValue("性别");
row = sheet.createRow(1);
row.createCell(0).setCellValue("张三");
row.createCell(1).setCellValue(22);
row.createCell(2).setCellValue("男");
row = sheet.createRow(2);
row.createCell(0).setCellValue("李四");
row.createCell(1).setCellValue(25);
row.createCell(2).setCellValue("女");
row = sheet.createRow(3);
row.createCell(0).setCellValue("王五");
row.createCell(1).setCellValue(30);
row.createCell(2).setCellValue("男");
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.setContentDispositionFormData("attachment", "data.xls");
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
// 将Excel文档转换为字节数组并返回
ByteArrayOutputStream out = new ByteArrayOutputStream();
workbook.write(out);
return new ResponseEntity<>(out.toByteArray(), headers, HttpStatus.OK);
}
```
这个接口使用@GetMapping注解标记,表示处理GET请求。它构造了一个Excel文档,将数据写入到第一个工作表的前四行中。然后,设置响应头,将Excel文档转换为字节数组,并使用ResponseEntity返回。这里使用的是HSSFWorkbook,如果需要导出其他格式的文件,可以使用XSSFWorkbook等其他类型的Workbook。
阅读全文