EasyExcel 读取全部Sheet数据为MapSheet ListMapString Object
EasyExcel是一个基于阿里巴巴开源的EasyExcel库,可以轻松地读取和写入Excel文件。要读取Excel文件中的所有Sheet数据并将其存储为Map<Sheet, List<Map<String, Object>>>,可以使用以下代码:
public Map<Sheet, List<Map<String, Object>>> readAllSheets(String filePath) {
Map<Sheet, List<Map<String, Object>>> resultMap = new HashMap<>();
try {
InputStream inputStream = new FileInputStream(filePath);
ExcelReader excelReader = new ExcelReader(inputStream, null, null, new AnalysisEventListener<Map<String, Object>>() {
private List<Map<String, Object>> dataList = new ArrayList<>();
@Override
public void invoke(Map<String, Object> data, AnalysisContext context) {
dataList.add(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
resultMap.put(context.getCurrentSheet(), dataList);
}
});
List<Sheet> sheetList = excelReader.getSheets();
for (Sheet sheet : sheetList) {
excelReader.read(sheet);
}
excelReader.finish();
} catch (Exception e) {
e.printStackTrace();
}
return resultMap;
}
这个方法使用了EasyExcel提供的ExcelReader类来读取Excel文件。在ExcelReader构造函数中,我们传入了一个AnalysisEventListener对象,该对象用于处理Excel文件中的每一行数据。
在invoke方法中,我们将每一行数据存储为Map<String, Object>对象,并将其添加到一个List中。在doAfterAllAnalysed方法中,我们将Sheet和该Sheet中的所有数据List存储到resultMap中。
最后,我们使用excelReader.getSheets()方法获取Excel文件中的所有Sheet列表,并使用excelReader.read(sheet)方法读取每个Sheet的数据。最后,我们使用excelReader.finish()方法关闭ExcelReader。
这个方法返回一个Map<Sheet, List<Map<String, Object>>>,其中Sheet是Excel文件中的Sheet对象,List<Map<String, Object>>是该Sheet中的所有数据列表,每个数据都存储为Map<String, Object>对象。
原文地址: http://www.cveoy.top/t/topic/b11T 著作权归作者所有。请勿转载和采集!