2013-11-04 89 views
1

我想写一个函数,读取一个Excel模板,并开始写在某个行索引。但是,我发现编号跳过了模板中的空白行。有没有办法在迭代过程中计算空行?XSSF计数丢失行

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

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

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

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

+0

请分享,您如何使用缺少的单元格策略... – Sankumarsingh

回答

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 
     } 
    } 
} 
0

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

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