将数据写入Excel,显示Null指针异常

时间:2016-03-29 12:54:50

标签: excel nullpointerexception apache-poi

我是selenium WebDriver的初学者。 这是我将数据写入excel表的selenium代码的一部分,但在执行代码时我得到的是NullPointer异常......原因是什么??(excel表处于关闭状态,没有编译时问题)< / p>

代码:

FileInputStream fis=new FileInputStream("C:\\Users\\Desktop\\Book1.xlsx");

Workbook wb=WorkbookFactory.create(fis);
Sheet sh=wb.getSheet("Sheet1");

for(int i=0;i<=20;i++) {
    Row row=sh.getRow(i);

    for(int m=0;m<=20;m++) {
        Cell cell=row.createCell(m);

        cell.setCellType(cell.CELL_TYPE_STRING);
        cell.setCellValue("good");

        FileOutputStream fos=new FileOutputStream("C:\\Users\\Desktop\\Book1.xlsx");

        wb.write(fos);
        fos.close();
    }
}

System.out.println("Excel File Written");

2 个答案:

答案 0 :(得分:2)

如果excel完全空白,那么您将获得空指针异常,因此在执行代码之前,请确保至少有一个单元格中有一些数据。

答案 1 :(得分:0)

您在xlsx文件中访问了一行,但是该行可能为null,因此请将getrow替换为createrow:

Row row=null;

for(int i=0;i<=20;i++) {
    if(sh.getRow(i) != null) {
        row = sh.getRow(i);}
    else {
        row = sh.createRow(i);
    }
}