1

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

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

4

2 回答 2

5

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

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

if (cell == Cell.CELL_TYPE_BLANK){
   cell.setCellType(Cell.CELL_TYPE_STRING);
   cell.setCellValue("Apple");
}   
于 2013-01-09T02:22:08.353 回答
-1

这将导致不兼容的类型。

而是这样做:

if (cell.getCellType() == Cell.CELL_TYPE_BLANK){
    cell.setCellType(Cell.CELL_TYPE_STRING);
    cell.setCellValue("Apple");
}   
于 2013-06-18T17:36:56.347 回答