获取nullPointerException在get空白行getLastCellNum()方法,使用apache poi

我的方案是,我必须退出Exceltxt转换时出现空白行。 我写了下面的代码,它获取nullPointerException在get空白行getLastCellNum()方法,使用apache poi

for (int rowNum = rowStart; rowNum < rowEnd; rowNum++) 

{

Row row=sheet1.getRow(rowNum);

int lastColumn = row.getLastCellNum();

for (int cn = 0; cn < lastColumn; cn++)

{

Cell cell = row.getCell(cn, Row.RETURN_BLANK_AS_NULL);

if(cell == null)

{

break;

}

switch(cell.getCellType())

{

//Remaining code for non-blank cells

}

}

}

的代码工作正常,但只要出现一个空白行,一个nullPointerException在第4行抛出上午在 的getLastCellNum()方法我做错了什么?此外,我已经设置了丢失的格策为我的工作簿

workbook1.setMissingCellPolicy(Row.RETURN_BLANK_AS_NULL); 

回答:

看来,这种情况下可能发生,如果你想找到任何空行的lastCellNum,而板材的最后一排数超过当前行号。

例如,如果工作表中的总行数为10,但第5行为空。 Null表示不是空白的,而是UN初始化的行。在这种情况下,Row row=sheet1.getRow(rowNum);将不会显示任何错误,但row.getLastCellNum();将显示nullPointerException

要解决此问题,您需要检查在获取最后一个行号之前,该行不应为空。

请检查下面的代码段

int lastColumn=0; 

for (int rowNum = 0; rowNum < rowEnd; rowNum++){

Row row=sheet1.getRow(rowNum);

if(row!=null)

lastColumn = row.getLastCellNum();

else

continue;

for (int cn = 0; cn < lastColumn; cn++){

Cell cell = row.getCell(cn, Row.RETURN_BLANK_AS_NULL);

if(cell == null){

break;

}

switch(cell.getCellType()){

//Remaining code for non-blank cells

}

}

}

以上是 获取nullPointerException在get空白行getLastCellNum()方法,使用apache poi 的全部内容, 来源链接: utcz.com/qa/264552.html

回到顶部