Apache POI。使用row.getLastCellNum()检索非空单元格的数量

时间:2017-09-05 07:29:34

标签: java excel apache apache-poi

我正试图连续获得非空白数量的单元格。

| 1  | 2  | 3 |  |  |  |
| 55 | 33 |   |  |  |  |

(int) row.getLastCellNum();

但对于这两行,我得到的int大于实际上在我的工作表中有值的单元格数。这可能是什么原因?单元格格式和/或样式可以以某种方式负责吗?

我还注意到,如果我从excel表中删除值(手动,而不是从代码中删除),poi仍然将它们视为非空(null?)并将它们包含在总计数中。

UPD:经过一番研究后我发现,如果我向一个单元格添加值然后删除它,那么POI仍然认为它是非空的。有没有办法正确清除Excel工作表中的单元格内容而不删除整行/列?

1 个答案:

答案 0 :(得分:0)

现在我已经解决了这个问题:

Iterator<Cell> cells = row.cellIterator();
                while (cells.hasNext()) {
                    if (formatCellToString(cells.next()).equals("")) {
                        lastCellNumber = lastCellNumber - 1;
                    }
                }

如果有人有更好的解决方案会很好。