如何使用Spring Boot实现使用EXCEL实现批量导入和导出
时间: 2024-02-06 17:08:52 浏览: 89
springboot 实现后端接口操作Excel的导出、批量导入功能
使用Spring Boot可以很方便地实现使用Excel进行批量导入和导出。下面是一个简单的示例:
1. 导入依赖
在pom.xml中添加以下依赖:
```xml
<!-- Excel相关依赖 -->
<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>
```
2. 编写导入接口
```java
@PostMapping("/import")
public void importExcel(@RequestParam("file") MultipartFile file) throws Exception {
// 加载Excel文件
Workbook workbook = WorkbookFactory.create(file.getInputStream());
// 获取第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 遍历每一行数据
for (Row row : sheet) {
// 忽略第一行标题行
if (row.getRowNum() == 0) {
continue;
}
// 获取每个单元格的值
String name = row.getCell(0).getStringCellValue();
int age = (int) row.getCell(1).getNumericCellValue();
// TODO: 将数据保存到数据库或其他地方
}
}
```
3. 编写导出接口
```java
@GetMapping("/export")
public void exportExcel(HttpServletResponse response) throws Exception {
// 创建Excel文件
Workbook workbook = new XSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 创建标题行
Row row = sheet.createRow(0);
row.createCell(0).setCellValue("姓名");
row.createCell(1).setCellValue("年龄");
// TODO: 从数据库或其他地方获取数据,遍历每一行数据
for (int i = 0; i < dataList.size(); i++) {
// 创建行
Row dataRow = sheet.createRow(i + 1);
// 填充数据
dataRow.createCell(0).setCellValue(dataList.get(i).getName());
dataRow.createCell(1).setCellValue(dataList.get(i).getAge());
}
// 设置响应头信息
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("data.xlsx", "UTF-8"));
// 输出Excel文件
OutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.flush();
outputStream.close();
}
```
以上就是使用Spring Boot实现使用Excel进行批量导入和导出的简单示例。
阅读全文