如何迭代电子表格中的所有行(包括空值)

我正在使用Apache poiparsingExcel电子表格。 根据poi迭代器指南 ,行迭代器将跳过为空的行。 我想遍历所有的行,null或不。 所以我用循环代替。

Row row0 = sheet.getRow(0); for (Row row : sheet) { rowIndex ++; Cell cell = row.getCell(0); if (cell != null) { System.out.println(rowIndex); } } 

当我在Eclipse中debugging它时,对于下面的电子表格,row0为空,但for循环的第一个迭代中的行不为null。 输出(第一个非空单元格的行索引)应该是2,但实际上打印1。

电子表格

在eclipse中调试

为什么第一个空行被for循环跳过?

对于循环(在这种情况下为每个循环)使用迭代器(请参阅Iterable接口https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html )遍历行,以便你写了它会跳过空值。

在迭代中包含空值的方法是使用传统的for循环(请参见http://poi.apache.org/spreadsheet/quick-guide.html#Iterator中的 控制遗漏/空白单元格部分的单元格迭代 )。