导入Excel数据
SpringBoot提供了很多方便的方式来导入Excel数据。下面是使用poi和EasyExcel两种方式的示例。
使用poi导入Excel数据
首先,我们需要在pom.xml文件中添加poi和poi-ooxml的依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
然后,我们创建一个Excel导入的控制器:
@RestController
public class ExcelImportController {
@PostMapping("/import-excel")
public String importExcel(@RequestParam("file") MultipartFile file) throws IOException {
Workbook workbook = WorkbookFactory.create(file.getInputStream());
Sheet sheet = workbook.getSheetAt(0);
// 处理Excel数据
workbook.close();
return "Excel导入成功";
}
}
使用EasyExcel导入Excel数据
EasyExcel是一款基于poi封装的更加便捷的Excel处理工具。我们可以通过在pom.xml文件中添加EasyExcel的依赖来使用它:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.11</version>
</dependency>
然后,我们创建一个Excel导入的控制器:
@RestController
public class ExcelImportController {
@PostMapping("/import-excel")
public String importExcel(@RequestParam("file") MultipartFile file) throws IOException {
EasyExcel.read(file.getInputStream(), DemoData.class, new DemoDataListener()).sheet().doRead();
return "Excel导入成功";
}
public static class DemoDataListener extends AnalysisEventListener<DemoData> {
@Override
public void invoke(DemoData data, AnalysisContext context) {
// 处理Excel数据
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 导入完成后的操作
}
}
}
导出Excel数据
与导入Excel数据类似,SpringBoot也提供了多种方式来导出Excel数据。
使用poi导出Excel数据
首先,我们需要在pom.xml文件中添加poi和poi-ooxml的依赖(同导入Excel数据的步骤)。
然后,我们创建一个Excel导出的控制器:
@RestController
public class ExcelExportController {
@GetMapping("/export-excel")
public void exportExcel(HttpServletResponse response) throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 填充Excel数据
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=data.xlsx");
workbook.write(response.getOutputStream());
workbook.close();
}
}
使用EasyExcel导出Excel数据
EasyExcel同样提供了方便的导出Excel数据的功能。
首先,我们需要在pom.xml文件中添加EasyExcel的依赖(同导入Excel数据的步骤)。
然后,我们创建一个Excel导出的控制器:
@RestController
public class ExcelExportController {
@GetMapping("/export-excel")
public void exportExcel(HttpServletResponse response) throws IOException {
EasyExcel.write(response.getOutputStream(), DemoData.class).sheet("Sheet1").doWrite(getData());
}
private List<DemoData> getData() {
// 获取要导出的数据
}
}
导入导出Excel数据的注意事项
- 导入Excel数据时,需要根据Excel的格式进行逐行处理。
- 导出Excel数据时,需要将要导出的数据填充到Excel的对应位置。
- 在处理大量数据时,为避免内存溢出,可以使用分批读取或写入的方式。
以上就是使用SpringBoot导入导出Excel数据的方法。希望对你有所帮助!
本文来自极简博客,作者:天使之翼,转载请注明原文链接:SpringBoot Excel导入导出