我尝试使用 apache poi 获取 Excel 文件中的最后一行索引,但 getLastRowNum() 总是返回错误的行数,并且该数字始终为 1048575 。
我的xlsx很简单。它只有三行内容。
以下是相关代码片段:
Sheet sheet = workbook.getSheetAt(0);
int rowNum = sheet.getLastRowNum();
log.info("LastRowNum " + rowNum);
Apache POI 版本:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
</dependency>
操作系统:“Arch Linux”
JAVA版本:
openjdk version "17.0.5" 2022-10-18
OpenJDK Runtime Environment Temurin-17.0.5+8 (build 17.0.5+8)
OpenJDK 64-Bit Server VM Temurin-17.0.5+8 (build 17.0.5+8, mixed mode, sharing)
我尝试升级 apache poi 但这并不能解决问题。
我也有同样的问题,不是 Apache POI 造成的,而是 LibreOffice 编辑造成的!当您使用 LibreOffice 删除一行时,最后一行索引将设置为可用最大行数 (1048575)。
如果您使用Excel,则不会有问题...
目前我还没有解决方案...
就我而言,当 getLastRowNum() 返回 1048575 时,我排除了对行数的检查...(我想该文件正在使用 LibreOffice 进行编辑,并且我的检查是不可能的!)。