获得空指针异常中的Apache POI产生细胞(Getting null pointer excep

2019-08-06 03:15发布

我得到一个空指针错误,每次我跑我的代码(见下文),并指出有两个星号指定的行。

public void writeSomething(XSSFWorkbook wb){
        for (String elem: listOfSheetNames){
            if (elem.equals("Sheet2")){
                sheet = wb.getSheet(elem); //sheet is of type XSSFSheet
                XSSFRow row = sheet.getRow(0);
                **XSSFCell cell = row.getCell(1);

                if (cell == null){
                    cell = row.createCell(1);
                    cell.setCellType(Cell.CELL_TYPE_STRING);
                    cell.setCellValue("Apple");
                }                                       
            }
        }
    }

我是一个新的到Apache POI和我只是想将数据写入在第二Excel工作表(Sheet2的)空白单元格。 难道我做错了吗?

Answer 1:

不幸的是,电池是目前null不是一个空白单元格。 指定的片材上放置数据使得空白。 您可能需要首先创建细胞,然后检查它是否是一个blank单元格,而不是null

**XSSFCell cell = row.createCell(1);

if (cell == Cell.CELL_TYPE_BLANK){
   cell.setCellType(Cell.CELL_TYPE_STRING);
   cell.setCellValue("Apple");
}   


Answer 2:

这将导致不兼容的类型。

相反,这样做:

if (cell.getCellType() == Cell.CELL_TYPE_BLANK){
    cell.setCellType(Cell.CELL_TYPE_STRING);
    cell.setCellValue("Apple");
}   


文章来源: Getting null pointer exception in creating cell in Apache POI