Java createCell处出现空指针异常-apache POI

Java createCell处出现空指针异常-apache POI,java,excel,nullpointerexception,apache-poi,Java,Excel,Nullpointerexception,Apache Poi,我有以下代码: if (verifica == false) { Row add = wbSheet.getRow(Final); Cell nomeR = add.createCell((short) 3); //Null Pointer Exception nomeR.setCellValue(nome);

我有以下代码:

if (verifica == false) {

                            Row add = wbSheet.getRow(Final);
                            Cell nomeR = add.createCell((short) 3); //Null Pointer Exception
                            nomeR.setCellValue(nome);
                            Final++; 
                        }
我不明白的是为什么我会在那条线上出现这个错误。 因为行所做的唯一事情就是创建一个单元格,它将填充到下一行中


感谢帮助

< p>如果您的.xLSX文件包含空白单元格的任何格式,POI读取不将其视为NULL,但是如果您想打印它的值,它将给出Null PoExtExpRebug。

FileInputStream fin = new FileInputStream(xlsFile);
XSSFWorkbook wb = new XSSFWorkbook(end);
XSSFSheet sheet = wb.getSheetAt(1);
int RowWithNullValue=0, RowWithoutNullValue=0;
for (int i=0;i<1000;i++){
    if (sheet.getRow(i)==null)
        RowWithNullValue++;
    else{
        RowWithoutNullValue++;
    //  logger.info(sheet.getRow(0).getCell(0));
    }
}
System.out.println(sheet.getLastRowNum());
System.out.println(RowWithNullValue+","+RowWithoutNullValue);
*如果取消对print语句的注释,它将抛出NullPointerException

FileInputStream fin = new FileInputStream(xlsFile);
XSSFWorkbook wb = new XSSFWorkbook(end);
XSSFSheet sheet = wb.getSheetAt(1);
int RowWithNullValue=0, RowWithoutNullValue=0;
for (int i=0;i<1000;i++){
    if (sheet.getRow(i)==null)
        RowWithNullValue++;
    else{
        RowWithoutNullValue++;
    //  logger.info(sheet.getRow(0).getCell(0));
    }
}
System.out.println(sheet.getLastRowNum());
System.out.println(RowWithNullValue+","+RowWithoutNullValue);
FileInputStream fin=新的FileInputStream(xlsFile);
XSSF工作簿wb=新XSSF工作簿(结束);
XSSFSheet sheet=wb.getSheetAt(1);
int RowWithNullValue=0,RowWithoutNullValue=0;

对于(int i=0;iXSSFRow.CreateCell需要将其XSSFWorkbook作为父对象。请确保您的XSSFSheet是否由XSSFWorkbook实例创建。 NPOI源代码:

public NPOI.SS.UserModel.Cell CreateCell(int column)
{
    return this.CreateCell(column, NPOI.SS.UserModel.CellType.BLANK);
}        
public NPOI.SS.UserModel.Cell CreateCell(int columnIndex, NPOI.SS.UserModel.CellType type)
{
    Cell cell = new HSSFCell(book, sheet, RowNum, (short)columnIndex, type);

    AddCell(cell);
    sheet.Sheet.AddValueRecord(RowNum, ((HSSFCell)cell).CellValueRecord);
    return cell;
}

HSSFCell的构造函数需要book、sheet。

如果您通过FileOutStream创建了excel工作表,但在创建单元格之前忘记创建行,则会发生这种情况,我希望这将解决新加入者的问题。

可能wbSheet.getRow(Final)返回null。但即使我设置了一个数字而不是将变量“Final”放入其中,我仍然在同一行上得到相同的错误