easyexcel读取excel转换为List<Map>
时间: 2023-12-10 11:41:20 浏览: 119
可以使用阿里巴巴的 EasyExcel 库来读取 Excel 并将其转换为 List<Map>。
以下是一个示例代码:
```java
// 读取 Excel 文件
InputStream inputStream = new FileInputStream("path/to/excel/file.xlsx");
ExcelReader excelReader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null, new AnalysisEventListener<List<String>>() {
@Override
public void invoke(List<String> rowData, AnalysisContext analysisContext) {
// 处理每一行数据
Map<String, String> rowMap = new HashMap<>();
for (int i = 0; i < rowData.size(); i++) {
rowMap.put("col_" + i, rowData.get(i));
}
dataList.add(rowMap);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
// Excel 读取完成后的回调方法
}
});
// 读取 Sheet
excelReader.read(new Sheet(1, 1));
// 关闭 Excel 读取器
excelReader.finish();
```
在上面的代码中,我们使用 `ExcelReader` 类来读取 Excel 文件。在 `AnalysisEventListener` 中,我们实现了两个回调方法:`invoke` 和 `doAfterAllAnalysed`。`invoke` 方法会在每读取一行数据时被调用,我们在其中将该行数据转换为一个 Map,并添加到 `dataList` 中。`doAfterAllAnalysed` 方法则会在 Excel 文件全部读取完成后被调用。
最后,我们使用 `Sheet` 类来指定要读取的 Sheet,然后调用 `read` 方法开始读取 Excel 文件。读取完成后,我们需要调用 `finish` 方法关闭 Excel 读取器。
注意:在示例代码中,我们假设 Excel 文件的第一行是表头,因此不会被读取。如果你的 Excel 文件没有表头,需要在 `Sheet` 构造方法中将第二个参数设为 0,例如 `new Sheet(1, 0)`。
阅读全文