我们使用Apache POI 3.8解析过人之处。我们需要能够检测(并跳过)隐藏行,因为它们往往包含我们用例中的垃圾数据。检测隐藏的单元格在Excel中使用Apache POI
这似乎可以这样:
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())
...
但对于每一行,我们得到(在上面的自定义输出回路):
Cell 0 is not hidden [email protected]/false
请问“getHidden()”不工作,还是不工作,因为我认为它呢?是否有另一种检测隐藏行的方法? (隐藏列也将是一个不错的奖金,但稍显不足有关ATM),你应该
为了隐藏行'hidden'被设置为TRUE;但除非明确设置,'row.getHeight()'总是返回其可能不是一个零的默认工作表值。我们可以依靠'row.getZeroHeight()' –
getZeroHeight()适用于我现在面临的用例。因此,尽管“getRowStyle()”仍然不起作用,但看起来应该如此。我是否应该将您的回答标记为正确答案,或者等到有人对getRowStyle()问题给出了一些反馈? (我是计算器,而新) – nablex
通常情况下,行样式应该正确地加载POI,从而'getRowStyle()。getHidden()'应该工作。或者我想。我假设我们可以安全地依靠'getZeroHeight()'。为了正确的答案,我不知道。如你所愿 – Alex