apache poi查找工作表中的行数

tan*_*nvi 3 java excel apache-poi

我一直在使用这些方法来计算工作表中的行数

getLastRowNum()
Run Code Online (Sandbox Code Playgroud)

getPhysicalNumberOfRows()
Run Code Online (Sandbox Code Playgroud)

在我的工作簿的两张纸上,它们工作正常。但是,包含5行的第三张表将同时返回两个函数。

Sheet NumberofRows getLastRowNum() getPhysicalNumberOfRows()
1     9            9               10
2     56           56              57
3     5            4               5
Run Code Online (Sandbox Code Playgroud)

这两个功能在工作上到底有什么区别,我该怎么做才能获得可靠的正确结果?

the*_*ace 5

getLastRowNum()

  • 此工作表中包含的最后一行的编号,从零开始

即像数组一样,如果n是行数,则从0到n-1开始。

getPhysicalNumberOfRows()

  • 此工作表中物理定义的行数。不包括空行

因此,对于第10行,getLastRowNum()9开始为9
这是getPhysicalNumberOfRows()应该使用的原因之一,而不是getLastRowNum()因为如果工作表中的行数为1,getLastRowNum()则将返回0,如果有0行或只有一行位于适当位置0getPhysicalNumberOfRows()返回1 ,则无法区分。