spring boot导入导出Excel
时间: 2023-06-25 16:06:27 浏览: 99
在Spring Boot中实现导入导出Excel的方式有多种,这里介绍一种比较简单的方式:
1. 导入Excel
首先,需要引入以下依赖:
```
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
```
然后,编写一个Controller,处理上传Excel文件的请求:
```
@PostMapping("/import")
public String importExcel(@RequestParam("file") MultipartFile file) throws Exception {
InputStream inputStream = file.getInputStream();
Workbook workbook = WorkbookFactory.create(inputStream);
Sheet sheet = workbook.getSheetAt(0);
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
Row row = sheet.getRow(i);
// TODO: 处理每一行数据
}
return "success";
}
```
这段代码中,我们使用了Apache POI库来解析Excel文件,通过`getSheetAt(0)`获取第一个Sheet,并遍历每一行数据。
2. 导出Excel
导出Excel需要先构造Excel文件,然后将其写入到输出流中。同样需要引入Apache POI依赖。
```
@GetMapping("/export")
public void exportExcel(HttpServletResponse response) throws Exception {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("Name");
headerRow.createCell(1).setCellValue("Age");
// TODO: 通过数据库等方式获取数据,并将数据填充到每一行中
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment;filename=test.xlsx");
OutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.flush();
outputStream.close();
}
```
这段代码中,我们使用了XSSFWorkbook来创建新的Excel文件,并创建新的Sheet。然后创建表头行,并设置表头内容。接着,通过数据库等方式获取数据,并将数据填充到每一行中。最后,设置响应头和输出流,将Excel文件写入到输出流中,实现下载。
阅读全文