十. EasyExcel读取所有sheet的数据
2021-03-25 本文已影响0人
任未然
一. 概述
在有些业务场景, 每个sheet的数据结构是一样的(即标题是一样的), 有多少个sheet是不知道的, 我想一次把所有的sheet的数据用简单的方法一次读取完. 下面就介绍用easyExcel的
readAll()
方法读取
二. 示例
2.1 读取工具类
/**
* 使用 模型 来读取Excel
*
* @param fileInputStream Excel的输入流
* @param tClass 模型的类
* @return 返回 模型 的列表(为object列表,需强转)
*/
public static <T> List<T> readExcelAllSheet(InputStream fileInputStream, Class<T> tClass) throws IOException {
AnalysisEventListenerImpl<T> listener = new AnalysisEventListenerImpl<T>();
ExcelReader excelReader = EasyExcel.read(fileInputStream, tClass, listener).build();
excelReader.readAll();
excelReader.finish();
return listener.getDatas();
}
2.2 使用
@Test
public void testReadAllSheet() throws IOException {
// 输入流
FileInputStream inputStream = new FileInputStream("D:\\MyData\\wangpr\\Desktop\\多语言翻译导出.xlsx");
List<MultiLanguage> listenerDatas = readExcelAllSheet(inputStream, MultiLanguage.class);
if(CollectionUtils.isNotEmpty(listenerDatas)){
listenerDatas.forEach(System.out::println);
}
}