簡體   English   中英

iterator.next跳過索引

[英]iterator.next skipping index

我有一個迭代器,值是這樣的:

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時會跳過索引? 盡管值為空,如何遍歷所有索引? 我希望輸出如下所示:

A
B
null
null
E
F

不會顯示null值,因為在Excel中, Cell格2和3中不存在單元格。該行中總共只有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方法 “獲取此行PLUS ONE中包含的最后一個單元格的索引。”,因此, for循環條件在編寫時是正確的。

我有使用MissingCellPolicy CREATE_NULL_AS_BLANK代碼,它將不存在的Cell轉換為空白Cell ,結果為"" ,因此我們必須使用空檢查來測試該單元格是否存在。

為缺少的單元格創建一個新的空白單元格。 空白單元格正常返回

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM