EasyExcel读取上传Excel 返回list 数据
时间: 2023-09-16 17:12:50 浏览: 220
从Excel读取列表数据
好的,可以使用EasyExcel来读取上传的Excel文件并返回List数据。以下是部分代码示例:
```java
// 定义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;
}
```
在上面的代码中,我们使用EasyExcel的`read`方法来读取上传的Excel文件,然后使用`registerReadListener`方法来注册一个读取监听器,在读取每行数据时将其转换为一个`Map`对象并加入到`dataList`中,最后返回`dataList`即可。需要注意的是,我们在`read`方法中使用了`headRowNumber`来指定从第2行开始读取数据,因为第1行是列名信息。
当然,你需要根据实际情况修改代码,例如你的Excel文件可能有多个Sheet,你需要在`ReadListener`中添加处理逻辑。
阅读全文