Java 如何知道单元格在读取Excel工作表时是否返回空值?
我正在从excel工作表中的某些特定单元格读取值。这些单元格通常包含字符串,但有时可能为空(因此可能返回空白或null)。我使用以下代码获取单元格数据: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。有人能指出什么是错误的,应该补充什么吗 注意:我故意使用行
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());
}
不客气。但是请注意,现在处理空单元格和丢失的单元格是一样的。请参阅我的最新答案。