我们正在使用 Apache POI 3.8 解析 Excel 文件。我们需要能够检测隐藏的行(并跳过它们),因为在我们的用例中它们往往包含无用的数据。
看起来应该可以这样实现:
看起来应该可以这样实现:
row.isFormatted() && row.getRowStyle().getHidden()
但是似乎没有任何行级别格式(getRowStyle()始终返回null)。作为最后的办法,我们认为检查单元格样式可能有效:
for (int i = 0; i < row.getLastCellNum(); i++) {
Cell cell = row.getCell(i);
if (cell != null && cell.getCellStyle() != null && cell.getCellStyle().getHidden())
...
但是对于我们在上面的for循环中得到的每一行(自定义输出):
Cell 0 is not hidden org.apache.poi.hssf.usermodel.HSSFCellStyle@1b9142d0 / false
“getHidden()”方法无法正常工作还是我对其认识有误?是否有其他方法可以检测隐藏行?(检测隐藏列也是一个不错的附加功能,但目前略微不太相关)
hidden
被设置为true
,但如果没有显式设置,row.getHeight()
始终返回默认工作表值,这可能不是零。我们可以依赖于row.getZeroHeight()
。 - Ravinder ReddygetRowStyle().getHidden()
应该可以正常工作。至少我是这么认为的。我想我们可以安全地依赖于getZeroHeight()
。至于正确答案,我不知道。随你怎么做。 - Alex