3
Q
[alibaba/easyexcel]3.2.2版本设置headRowNumber为非1的数字时,读到的表格数据都是空的
A
回答
4
CommonReadListener
EasyExcel.read(inputStream, clazz, readExcelDataListener)
.sheet(sheetName).headRowNumber(2)
这样调用读取,然后监听中去获取读取的内容 @Override public void invoke(T data, AnalysisContext context) { 这边的data返回是空的,但是当不设置这个headRowNumber或者设置为1时是正常可以读取的
1
没有3.2.2这个版本,说的是不是3.3.2这个版本,测试没有问题
EasyExcel.read(fileName, DemoData.class, new PageReadListener<DemoData>(dataList -> {
for (DemoData demoData : dataList) {
log.info("读取到一条数据{}", JSON.toJSONString(demoData));
}
})).sheet().headRowNumber(1).doRead();
可以加一个doRead();试试
8
EasyExcel.read(in, clazz, new PageReadListener<T>(dataList -> {
for (T data : dataList) {
}
})).sheet().headRowNumber(2).doRead();
我也遇到了,试了下楼上的,设置2,还是null 。 dataList数量正确,但是data的属性全为null
6
我这边测试没有问题,可以对数据脱敏一下,给我数据,我测试一下
4
没事了,原来是表格头严格匹配。
- (共3行) 也就是1行的表格头,2行数据。测试设置为headRowNumber 为2
- (共3行) 也就是2行的表格头,1行数据。设置为headRowNumber 为 1
就会null ,我也才看到 @ExcelProperty 的 name或者index 哪里的文字。可能匹配关系?还只建议设置一个 以前我都2个都设置。。
正确匹配就读取正常了
9
我这边debug 了个把小时. 发现是 实体类里面如果有1个字段 缺少 ExcelProperty 注解. 导致另1个别字段 下标错误. 被覆盖了.. 读取的数据也是null
6
默认不加ExcelProperty 的注解的都会参与读写,加了ExcelIgnoreUnannotated注解,没加ExcelProperty 不会参与读写