【发布时间】:2017-09-05 07:29:33
【问题描述】:
我正在尝试连续获取非空白数量的单元格。
| 1 | 2 | 3 | | | |
| 55 | 33 | | | | |
(int) row.getLastCellNum();
但是对于这两行,我得到的 int 大于工作表中实际具有值的单元格的数量。这可能是什么原因?单元格格式和/或样式可以在某种程度上负责吗?
我还注意到,如果我从 excel 工作表中删除值(手动,而不是从代码中),poi 仍将它们视为非空白(null?)并将它们包括在总数中。
UPD:经过更多研究,我发现如果我向单元格添加值然后删除它,那么 POI 仍然认为它是非空的。有什么方法可以在不删除整行/列的情况下正确清除excel表格中的单元格内容?
【问题讨论】:
-
你read the Apache POI docs on iterating over rows and cells,尤其是空白单元格和空单元格上的位吗?
-
是的,我有。虽然关于空白与空单元格的解释在那里非常模糊(至少对我来说是这样),但问题就来了。
-
它只是反映了 Excel 文件格式的工作方式!从未使用过空单元格或设置样式。空白单元格可能有样式、格式、边框等,或者可能已经习惯了,Excel 只是懒得稍后删除它们......
-
是的,我现在可以看到了。感谢@Gagravarr 的解释
标签: java excel apache apache-poi