首先在easyexcel监听器里面定义一个dataList用于得到invoke按行读取的数据的数据
private final List<Map<Integer, String>> dataList;
public void invoke(Map<Integer, String> data, AnalysisContext context) {
dataList.add(data);
}
public List<Map<Integer, String>> getDataList(){
return dataList;
}
在新建一个test.xlsx内容如下:
测试一下
public class Test {
public static void main(String[] args) {
ExcelListener excelListener=new ExcelListener();
EasyExcel.read("C:\\Users\\dell\\Desktop\\test.xlsx", excelListener)
.sheet(0)
.doRead();
for (Map<Integer, String> map : excelListener.getDataList()) {
System.out.println(map.size());
}
}
}
打印结果得到
得出结论:EasyExcel的invoke方法得到的map<Integer,String>是默认按表头的长度来计算的,超出表头的列也可以读到,比表头短的列则为null添加到map中。