1

我正在尝试编写一个读取 Excel 模板并在某个行索引处开始写入的函数。但是,我发现编号会跳过模板中的空白行。有没有办法在迭代期间计算空行?

我试图找到与缺少的单元格策略等效的行。我还尝试了这两种迭代方式:

  //simple for loop
  for (Row row : sheet1) {
    for (Cell cell : row) {
       ...
    }
  }

  //iterator
  while (rows.hasNext()) {
      XSSFRow row = ((XSSFRow) rows.next());
      ...
  }

两者似乎都忽略了空白行。这会导致问题,因为我的模板有空白行来分隔部分,这会导致行索引失效,并且我必须手动更正目标索引以执行诸如“从工作表中的第 5 行开始写入”之类的任务。

4

2 回答 2

2

根据我的理解,您的问题是您有一些空白行,但您无法找出空白行(即没有单元格)。如果我是对的,您可以使用以下检查(以为我没有检查它,但我认为它应该可以工作)。

if(row!=null){
    for (int cellNo = 0; cellNo < lastColumn; cellNo ++){
        Cell cell = row.getCell(cellNo , Row.RETURN_BLANK_AS_NULL);
        if(cell == null){
            //Code for the Blank Rows
        }
    }
}
于 2013-11-13T08:02:52.963 回答
0

尝试这个。它将空值显示为空白。

                for(Row blankRow : sheet)
                {
                    for(int cn=1; cn<blankRow.getLastCellNum()-1; cn++) 
                    {
                        Cell cells = blankRow.getCell(cn, Row.CREATE_NULL_AS_BLANK);
                    }
                }
于 2014-02-03T11:58:04.027 回答