POI:每行格式错误的格式方法getPhysicalNumberOfCells

时间:2014-04-29 17:07:42

标签: java excel apache-poi

我使用POI java库来阅读Excel。

My Exel有一个由8列组成的简单结构。

问题是通过方法getPhysicalNumberOfCells读取列长度每行得到不同的数字。

1 个答案:

答案 0 :(得分:4)

问题是getPhysicalNumberOfCells与我的想法有不同的含义。

getPhysicalNumberOfCells返回一行中包含内容的单元格数。

实际上POI存储每行只有添加到exel中的数据,例如,如果你在0,3,5列中有数据,getPhysicalNumberOfCells将总是返回3,因为3是"填充&#34的数量;细胞

为了达到我们使用的行中获取单元格逻辑数字的目的:

getLastCellNum() 

根据whit文档,此方法获取最后一个单元格的索引。此值增加BY ONE,因此在上面的示例中,whit最大索引为5将为6 .. 我认为这样做是为了简化rowcell上的迭代。

此外,还有一种方法

getLastCellNum

显示第一个单元格索引。

受官方文档启发的一个例子:

  short minColIdx = row.getFirstCellNum();
  short maxColIdx = row.getLastCellNum();
  for(short colIdx=minColIdx ; colIx<maxColIdx ; colIdx++) {
     Cell cell = row.getCell(colIx);
    //get value of cell

}