[alibaba/easyexcel]3.0.5 版本读取到了空行

2024-05-11 994 views
4

代码读取到了空行,debug 看cellDataMap 里面有数据,所有 cell 的 type 值都是 CellDataTypeEnum.EMPTY

private void dealData(AnalysisContext analysisContext) { ReadRowHolder readRowHolder = analysisContext.readRowHolder(); Map<Integer, ReadCellData<?>> cellDataMap = readRowHolder.getCellMap(); 请看截图 image

excel 截图,下面的空白行也能被读到 image

回答

6

我刚刚也遇到了同样的问题

3

代码读取到了空行,debug 看cellDataMap 里面有数据,所有 cell 的 type 值都是 CellDataTypeEnum.EMPTY

private void dealData(AnalysisContext analysisContext) { 
  ReadRowHolder readRowHolder = analysisContext.readRowHolder(); 
  Map<Integer, ReadCellData<?>> cellDataMap = readRowHolder.getCellMap();

请看截图 image

excel 截图,下面的空白行也能被读到 image

1. Sources Required

希望提供 Excel 原始文件,或能复现 bug 资源

2. Check Required

已知使用 @Accessors(chain = true) 会导致读空,ISSUE #1598

6
问题

同 3.0.5 版本读到空行。

使用背景
  1. 使用 easyexcel 方式如官网 demo “最简单读示例”;
  2. 未使用 @accessors(chain = true) ;
  3. 解析数据量修改后的同一个Excel文件。
问题描述

解析同一个文件:

  1. 每次解析的 Excel 文件为初次接收并解析时,能正常解析并识别有效行数。
  2. 在该Excel文件的基础上追加数据后二次解析时,能正常解析并识别有效行数。
  3. 问题:在该Excel文件的基础上减少数据后再次解析时,能正常解析,但是解析行数为该文件上一次解析的最大有效行数,导致读取到空行
问题演示
  1. 新建Excel文件,存入4条数据,正常解析:

firstcommitresult

  1. 在该文件基础上新增4条数据,正常解析:

addDataresult

  1. 在该文件基础上减少6条数据,解析(含空行)8行数据:

reduceDataresult

dedug相关信息

reduceDatadugInfo2

reduceDatadugInfo

1

这个目前有什么解决办法吗

8

建议根据某一列为空的情况判断为空行