在Apache POI中创建单元格时获取空指针异常

时间:2013-01-09 01:50:28

标签: java apache-poi

每次运行我的代码时,我都会收到一个空指针错误(如下所示),它指向用两个星号指定的行。

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)中的空白单元格。我在这里做错了吗?

2 个答案:

答案 0 :(得分:5)

不幸的是,该单元目前null不是空白单元格。将数据放在指定的工作表上会使其变为空白。您可能希望先创建单元格,然后检查它是blank单元格而不是null

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

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

答案 1 :(得分:-1)

这会导致类型不兼容。

而是这样做:

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