我有一个迭代器,值如下:
index value
0 A
1 B
2 null
3 null
4 E
5 F
这是我的代码:
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
cell = cellIterator.next();
System.out.println(cell.getStringCellValue());
}
,输出
A
B
E
F
为什么在值为null时跳过索引? 虽然值为null,但我如何遍历所有索引? 我希望输出如下:
A
B
null
null
E
F
答案 0 :(得分:4)
null
值未显示,因为在Excel中,单元格2和3中不存在Cell
。该行中总共只有4个单元格。
如果要覆盖整行,即使没有单元格,也必须从使用迭代器更改为传统的for循环。
for (int i = 0; i < row.getLastCellNum(); i++)
{
cell = row.getCell(i);
if (cell == null)
{
System.out.println("null");
}
else
{
System.out.println(cell.getStringCellValue());
}
}
getLastCellNum
method“获取此行中包含的最后一个单元格的索引 PLUS ONE 。”,因此for
循环条件正确无误。
我使用MissingCellPolicy
CREATE_NULL_AS_BLANK
代码,这会将不存在的Cell
变为空白Cell
,从而产生""
,因此我们必须测试该单元格是否为出现空检查。
为缺失的单元格创建一个新的空白单元格。空白单元格正常返回