XSSF计算丢失的行数

时间:2013-11-04 21:37:15

标签: java excel xssf

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

我试图找到一个等同于missing cell policy的行。我也尝试了这两种迭代方式:

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

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

两者似乎都忽略了空行。这会导致问题,因为我的模板有空白行来分隔会抛出行索引的部分,我必须手动更正目标索引,以执行“在表格中第5行开始写入”等任务。

2 个答案:

答案 0 :(得分: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
        }
    }
}

答案 1 :(得分:0)

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

                for(Row blankRow : sheet)
                {
                    for(int cn=1; cn<blankRow.getLastCellNum()-1; cn++) 
                    {
                        Cell cells = blankRow.getCell(cn, Row.CREATE_NULL_AS_BLANK);
                    }
                }