描述:
例如要读取两列,A列和B列。 两列都有数据的时候没问题。
但是如果A列没数据,那么就会只读取B列。
但是想要A列即使没数据,也存为空字符串。 实际只有B列读取到,A列直接忽略了。

代码:

for (int j = sheet.getFirstRowNum(); j <= sheet.getLastRowNum(); j++) {
    row = sheet.getRow(j);
    if (null != row ) {
        for (int y = row.getFirstCellNum(); y < row.getLastCellNum(); y++) {
            cell = row.getCell(y);
            // TODO
        }
    }
}

解决方案:
确实有这个问题,大胆猜测row.getFirstCellNum()是从第一个非空行开始的,因为如果第一列有数据,后面的空列也是可以读取到的。

那么如果遇到类似数据怎么办呢?
可以在第一列新建序号列,都填入1,后续的空列就能读取到了。