Java 如何知道单元格在读取Excel工作表时是否返回空值?

Java 如何知道单元格在读取Excel工作表时是否返回空值?,java,apache-poi,Java,Apache Poi,我正在从excel工作表中的某些特定单元格读取值。这些单元格通常包含字符串,但有时可能为空(因此可能返回空白或null)。我使用以下代码获取单元格数据: Cell cellValue = row.getCell(10, Row.RETURN_NULL_AND_BLANK); List.add(cellValue.getStringCellValue()); 然而,当我运行这段代码时,我得到了一个NullPointerException。有人能指出什么是错误的,应该补充什么吗 注意:我故意使用行

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

Cell cellValue = row.getCell(10, Row.RETURN_NULL_AND_BLANK);
List.add(cellValue.getStringCellValue());
然而,当我运行这段代码时,我得到了一个
NullPointerException
。有人能指出什么是错误的,应该补充什么吗


注意:我故意使用
行。返回\u NULL\u和\u BLANK
而不是
缺少CellPolicy。返回\u NULL\u和\u BLANK
,因为使用后者会给我带来错误。

如果
cellValue不为NULL,则需要测试它,由于使用了
Row.RETURN\u NULL\u和
将在您试图访问缺少的单元格时返回
NULL

由于缺少指定行上的第10列,您将获得一个
NullPointerException

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

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());
嘿,那里, 为什么不能像这样添加空指针检查

if(null!=cellValue)

    {

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

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

@dan-谢谢您的回复。这确实有所帮助。我对代码进行了如下修改,现在没有出现异常:

Cell cellValue = row.getCell(10, Row.CREATE_NULL_AS_BLANK);
if(cellValue.getStringCellValue().equals("")){
    List.add("NOT FOUND");
}
else {
    List.add(cellValue.getStringCellValue());
}

不客气。但是请注意,现在处理空单元格和丢失的单元格是一样的。请参阅我的最新答案。