easyexcel
easyexcel copied to clipboard
监听器invokeHeadMap和invoke读取的列数不一致问题
建议先去看文档
触发场景描述
使用的easyExcel版本是:3.1.1 我写了一个导入类继承了AnalysisEventListener<Map<Integer, String>>
触发Bug的代码
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
log.info("=====================解析头=====================");
if (CollUtil.isEmpty(headMap)) {
throw new FLFileException(RStatus.FILE_UPLOAD_FAIL, "所传文件表头为空, 请检查");
}
for (int i = 0; i < headMap.size(); i++) {
String caption = headMap.get(i);
if (sasFieldListHashMap.containsKey(caption)) {
exportFieldList.add(sasFieldListHashMap.get(caption).getFieldName());
} else {
exportFieldList.add(caption);
}
}
if (!exportFieldList.containsAll(realFieldSet)) {
throw new FLFileException(RStatus.FILE_UPLOAD_FAIL, "所传文件与模板文件字段不一致, 请检查");
}
this.headMap.putAll(headMap);
}
@Override
public void invoke(Map<Integer, String> data, AnalysisContext analysisContext) {
}
提示的异常或者没有达到的效果
我这里invokeHeadMap解析出来是27列(是正常的),但是第二张图解析数据时出现了29列(多了两列),请问这是什么原因导致的
说明表头行存在27个有效的单元格,数据行存在29个有效的单元格,多出2个没有内容的单元格。