EasyExcel.read读取excel转为list返回前端
时间: 2025-06-24 07:41:30 浏览: 12
### 使用EasyExcel读取Excel文件并转换为List返回给前端
要通过 `EasyExcel` 库将 Excel 文件中的数据读取到内存中,并将其作为 List 返回给前端,可以按照以下方式实现:
#### 1. 定义实体类
首先定义一个与 Excel 表格结构对应的 Java 实体类。假设表格中有两列:用户名 (`username`) 和年龄 (`age`)。
```java
public class User {
private String username;
private Integer age;
// Getters and Setters
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
```
#### 2. 编写读取方法
使用 `EasyExcel.read()` 方法来读取 Excel 数据,并将其存储在一个列表中。
```java
import com.alibaba.excel.EasyExcel;
import java.util.List;
public class ExcelReader {
public static List<User> readExcel(String fileName) {
// 创建一个返回对象
final List<User> userList = new ArrayList<>();
// 调用 EasyExcel 的读取功能
EasyExcel.read(fileName, User.class, new AnalysisEventListener<User>() {
@Override
public void invoke(User user, AnalysisContext analysisContext) {
userList.add(user); // 将每一行的数据加入到 list 中
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
// 所有数据解析完成后的操作
}
}).sheet().doRead();
return userList; // 返回最终的用户列表
}
}
```
#### 3. 控制器部分
在 Spring Boot 或其他框架下的控制器中调用该方法并将结果返回给前端。
```java
@RestController
@RequestMapping("/api/excel")
public class ExcelController {
@PostMapping("/read")
public ResponseEntity<List<User>> readExcel(@RequestParam("file") MultipartFile file) throws IOException {
try (InputStream inputStream = file.getInputStream()) {
// 获取临时文件路径
File tempFile = Files.createTempFile("temp_excel_", ".xlsx").toFile();
file.transferTo(tempFile);
// 调用工具类的方法读取 Excel 并转成 List
List<User> users = ExcelReader.readExcel(tempFile.getAbsolutePath());
// 删除临时文件
tempFile.delete();
// 返回 JSON 格式的响应
return ResponseEntity.ok(users);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
}
```
以上代码实现了从前端上传 Excel 文件,后台利用 `EasyExcel` 解析其内容至 `User` 对象集合,并以 JSON 形式返回给前端的功能[^1]。
### 注意事项
- 需要在项目中引入 `easyexcel` 依赖项。
- 如果表头名称不匹配字段名,则需配置映射关系或者自定义注解处理。
- 处理大文件时应考虑性能优化以及分页加载策略。
阅读全文
相关推荐


















