我使用POI java库来阅读Excel。
My Exel有一个由8列组成的简单结构。
问题是通过方法getPhysicalNumberOfCells读取列长度每行得到不同的数字。
答案 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
}