springboot poi 导出excel
时间: 2023-08-19 11:06:13 浏览: 165
Spring Boot是一个快速开发框架,可以轻松地创建基于Java的Web应用程序。POI是一个Java库,用于读写Microsoft Office格式的文件,包括Excel、Word和PowerPoint等。结合Spring Boot和POI,可以轻松地实现Excel文件的导出功能。
具体实现步骤如下:
1. 添加POI依赖
在pom.xml文件中添加POI依赖:
```
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
```
2. 创建Excel文件
使用POI创建Excel文件,可以使用HSSFWorkbook或XSSFWorkbook类。HSSFWorkbook适用于.xls格式的文件,XSSFWorkbook适用于.xlsx格式的文件。
```
// 创建工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建工作表
HSSFSheet sheet = workbook.createSheet("Sheet1");
// 创建行
HSSFRow row = sheet.createRow();
// 创建单元格
HSSFCell cell = row.createCell();
// 设置单元格的值
cell.setCellValue("Hello World");
```
3. 导出Excel文件
使用Spring Boot的ResponseEntity将Excel文件导出到浏览器。
```
// 设置响应头
response.setHeader("Content-Disposition", "attachment;filename=test.xls");
response.setContentType("application/vnd.ms-excel");
// 将Excel文件写入响应流
workbook.write(response.getOutputStream());
```
完整的代码示例:
```
@GetMapping("/export")
public ResponseEntity<byte[]> export() throws IOException {
// 创建工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建工作表
HSSFSheet sheet = workbook.createSheet("Sheet1");
// 创建行
HSSFRow row = sheet.createRow();
// 创建单元格
HSSFCell cell = row.createCell();
// 设置单元格的值
cell.setCellValue("Hello World");
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.setContentDispositionFormData("attachment", "test.xls");
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
// 将Excel文件写入响应流
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
return new ResponseEntity<>(baos.toByteArray(), headers, HttpStatus.OK);
}
```
阅读全文