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

标签 java excel iterator apache-poi

我正在使用 apache poi 来解析 Excel 电子表格。根据poi iterator guide ,行迭代器将跳过空行。我想迭代所有行,无论是否为空。所以我改用了 for 循环。

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

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

spreadsheet

debug in eclipse

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

最佳答案

For 循环(在本例中为 for-each 循环)使用迭代器(请参阅 Iterable 接口(interface) https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html )来迭代行,因此正如您所写,它将跳过空值。

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

关于java - 如何迭代电子表格中的所有行(包括空行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34625682/

相关文章:

java - 减少 A4J JSF Richfaces 所需的 JavaScript 文件

java - 如何找到 FileItemIterator 返回的 FileItemStream 的编码?

javascript - 将 Excel 文件导入和导出到 JavaScript 数组

excel - 选择语句包含拼写错误或缺失的保留字或参数名称,或者标点符号不正确 - VBA Excel

vba - 为什么我会收到此错误 : Object Variable or With block variable not set?

rust - 如何从实现该特征的结构迭代器中收集特征向量

java - 如何将对象列表与 thymeleaf 绑定(bind)?

java - 选择一个联系人并将其填写到EditText中

c++ - C++ 中的 vector 迭代器

c++ - 双向迭代容器