springboot 中 EasyExcel读取上传Excel 返回list 数据 提供公共方法
时间: 2024-03-06 22:48:07 浏览: 239
springboot整合easyexcel实现excel文件上传解析,下载导出简单实例.zip
5星 · 资源好评率100%
好的,以下是一个在Spring Boot中提供公共方法的示例:
```java
@Service
public class ExcelService {
// 定义Excel的列名
private static final String[] HEADERS = {"列1", "列2", "列3"};
// 上传Excel文件并读取数据
public List<Map<String, Object>> readExcel(MultipartFile file) throws IOException {
InputStream inputStream = file.getInputStream();
List<Map<String, Object>> dataList = new ArrayList<>();
// 读取Excel文件
EasyExcel.read(inputStream)
.headRowNumber(1) // 从第2行开始读取数据
.registerReadListener(new ReadListener() {
@Override
public void onReadSheet(int sheetIndex, String sheetName, int totalRowNumber) {
// 读取Sheet的信息
}
@Override
public void onReadRowData(int sheetIndex, int rowIndex, List<String> rowData) {
// 读取每行的数据
Map<String, Object> dataMap = new HashMap<>();
for (int i = 0; i < HEADERS.length; i++) {
dataMap.put(HEADERS[i], rowData.get(i));
}
dataList.add(dataMap);
}
})
.sheet()
.doRead();
return dataList;
}
}
```
在上面的代码中,我们在`ExcelService`服务类中定义了一个`readExcel`方法,该方法可以读取上传的Excel文件并返回一个`List<Map<String, Object>>`类型的数据。
为了在Spring Boot中使用这个服务类,我们需要在`ExcelService`类上添加`@Service`注解,然后在需要使用该服务的类中注入它,例如:
```java
@RestController
public class MyController {
@Autowired
private ExcelService excelService;
@PostMapping("/uploadExcel")
public List<Map<String, Object>> uploadExcel(@RequestParam("file") MultipartFile file) throws IOException {
return excelService.readExcel(file);
}
}
```
在上面的代码中,我们定义了一个`MyController`控制器类,并在其中注入了`ExcelService`服务。然后,我们在`/uploadExcel`接口中接收上传的Excel文件,并调用`ExcelService`的`readExcel`方法来读取数据并返回。当然,你需要根据实际情况修改代码。
阅读全文