springboot实现excel导入代码实例
时间: 2023-10-14 12:24:43 浏览: 102
springboot 代码示例
以下是一个简单的 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. 创建实体类
创建一个实体类,用于存储 Excel 中的数据。例如:
```java
public class User {
private String name;
private int age;
private String email;
// 省略 getter 和 setter 方法
}
```
3. 创建控制器
创建一个控制器,用于处理 Excel 文件上传和解析。例如:
```java
@RestController
@RequestMapping("/user")
public class UserController {
/**
* Excel 文件上传接口
*/
@PostMapping("/upload")
public String uploadExcel(@RequestParam("file") MultipartFile file) {
// TODO: 处理文件上传
return "上传成功";
}
/**
* Excel 文件解析接口
*/
@PostMapping("/import")
public String importExcel(@RequestParam("file") MultipartFile file) {
try {
// 1. 创建 Excel 工作簿
Workbook workbook = WorkbookFactory.create(file.getInputStream());
// 2. 获取第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 3. 遍历工作表的每一行
List<User> userList = new ArrayList<>();
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
Row row = sheet.getRow(i);
// 4. 读取每一行的单元格数据
String name = row.getCell(0).getStringCellValue();
int age = (int) row.getCell(1).getNumericCellValue();
String email = row.getCell(2).getStringCellValue();
// 5. 创建 User 对象并添加到列表中
User user = new User();
user.setName(name);
user.setAge(age);
user.setEmail(email);
userList.add(user);
}
// 6. 处理导入的数据
// TODO: 处理导入的数据
return "导入成功";
} catch (IOException e) {
e.printStackTrace();
return "导入失败";
}
}
}
```
在上面的代码中,我们首先通过 `WorkbookFactory.create()` 方法创建了一个 Excel 工作簿,然后获取了第一个工作表,并遍历了每一行。在遍历每一行时,我们通过 `row.getCell()` 方法读取了每个单元格的数据,并创建了一个 `User` 对象,将其添加到一个列表中。最后,我们可以在注释的地方处理导入的数据。
4. 创建前端页面
最后,我们需要创建一个前端页面,用于上传和导入 Excel 文件。例如:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Excel 导入</title>
</head>
<body>
<form action="/user/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<br>
<button type="submit">上传</button>
</form>
<br>
<form action="/user/import" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<br>
<button type="submit">导入</button>
</form>
</body>
</html>
```
在上面的代码中,我们创建了两个表单,分别用于上传和导入 Excel 文件。注意,我们需要将表单的 `enctype` 属性设置为 `multipart/form-data`,以支持文件上传。
阅读全文