首页 文章

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

提问于
浏览
0

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

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

(int) row.getLastCellNum();

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

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

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

1 回答

  • 0

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

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

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

相关问题