我正在阅读Excel工作表中某些特定单元格的值。这些单元格通常包含String,但有时它们可能是空白的(因此可能返回空格或null)。我使用以下代码来获取单元格数据:
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
,因为使用后者会给我一个错误。
答案 0 :(得分:8)
如果cellValue
不为空,则需要对其进行测试,因为在您尝试访问丢失的单元格的情况下,使用Row.RETURN_NULL_AND_BLANK
会返回null
。
您收到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());
答案 1 :(得分: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());
}
答案 2 :(得分:0)
if(null!=cellValue)
{
List.add(cellValue.getStringCellValue());
}
希望这有助于如果单元格值为null,那么您不会将单元格值添加到列表中。