获取nullPointerException在get空白行getLastCellNum()方法,使用apache poi
我的方案是,我必须退出Excel
到txt
转换时出现空白行。 我写了下面的代码,它获取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