我們使用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