4

我正在从 Excel 工作表中的某些特定单元格中读取值。这些单元格通常包含字符串,但有时它们可​​能是空白的(因此可能返回空白或空值)。我正在使用以下代码来获取单元格数据:

Cell cellValue = row.getCell(10, Row.RETURN_NULL_AND_BLANK);
List.add(cellValue.getStringCellValue());

但是,当我运行此代码时,我得到一个NullPointerException. 任何人都可以指出什么是错误的并且应该添加吗?

注意:我故意使用Row.RETURN_NULL_AND_BLANK而不是MissingCellPolicy.RETURN_NULL_AND_BLANK因为使用后者给我一个错误。

4

3 回答 3

8

您需要测试cellValue它是否不为空,因为 usingRow.RETURN_NULL_AND_BLANKnull在您尝试访问丢失的单元格的情况下返回。

您得到 a 是NullPointerException因为缺少指定行的第 10 列。

如果您需要以不同方式处理缺失和空白案例,您可以使用以下内容:

Cell cellValue = row.getCell(10, Row.RETURN_NULL_AND_BLANK);
if (cellValue == null)
    List.add("CELL NOT FOUND");
else if("".equals(cellValue.getStringCellValue().trim()))
    List.add("MISSING CONTENT");
else 
    List.add(cellValue.getStringCellValue());
于 2013-02-21T23:35:16.907 回答
1

@dan - 感谢您的回复。这确实有帮助。我修改了我的代码如下,我现在没有得到那个异常:

Cell cellValue = row.getCell(10, Row.CREATE_NULL_AS_BLANK);
if(cellValue.getStringCellValue().equals("")){
    List.add("NOT FOUND");
}
else {
    List.add(cellValue.getStringCellValue());
}
于 2013-02-21T23:42:30.940 回答
0

嘿,你为什么不能像这样添加空指针检查

if(null!=cellValue)

    {

    List.add(cellValue.getStringCellValue());
}

如果单元格值为空,希望这会有所帮助,那么您不要将单元格值添加到您的列表中。

于 2013-02-21T23:40:05.563 回答