easyexcel读取excel写入到list<map>
时间: 2023-08-15 21:07:05 浏览: 137
你可以使用阿里巴巴的EasyExcel开源库来读取Excel文件,并将其写入到List<Map>中。下面是一个示例代码:
```java
public List<Map<String, Object>> readExcel(File file) {
List<Map<String, Object>> list = new ArrayList<>();
ExcelReader excelReader = null;
try {
// 创建 ExcelReader 对象
excelReader = EasyExcel.read(file).build();
// 获取第一个工作表
ReadSheet readSheet = EasyExcel.readSheet(0).build();
// 读取数据并写入到 List<Map> 中
excelReader.read(readSheet).headRowNumber(1).registerReadListener(new ReadListener() {
private List<String> headList;
@Override
public void onReadSheet(int sheetIndex, String sheetName) {
}
@Override
public void onReadRowData(List<String> rowData, AnalysisContext context) {
if (headList == null) {
// 第一行为表头,记录表头信息
headList = rowData;
} else {
// 将每行数据转换为 Map,并添加到 List 中
Map<String, Object> map = new HashMap<>();
for (int i = 0; i < headList.size(); i++) {
map.put(headList.get(i), rowData.get(i));
}
list.add(map);
}
}
@Override
public void onException(Exception exception, AnalysisContext context) {
}
}).doRead();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭 ExcelReader 对象
if (excelReader != null) {
excelReader.finish();
}
}
return list;
}
```
该方法接收一个Excel文件作为参数,并返回一个List<Map>对象。在方法中,我们使用EasyExcel库的read方法创建ExcelReader对象,然后使用readSheet方法获取第一个工作表。接着,我们使用registerReadListener方法注册一个ReadListener实例,该实例在读取Excel文件时会被调用。在ReadListener实例中,我们通过onReadRowData方法读取每一行数据并将其转换为Map对象,最后将Map对象添加到List中。最后,我们关闭ExcelReader对象并返回List<Map>对象。
需要注意的是,该代码使用了Java 8的Lambda表达式语法。如果你使用的是Java 7或更早的版本,请将Lambda表达式替换为匿名内部类。
阅读全文