4

Excel シートの特定のセルから値を読み取っています。通常、これらのセルには文字列が含まれますが、空白の場合もあります (空白または 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

4

3 に答える 3

8

欠落しているセルにアクセスしようとしている場合にusingが返されるcellValueため、null でないかどうかをテストする必要があります。Row.RETURN_NULL_AND_BLANKnull

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());
}

セルの値がnullの場合、これが役立つことを願っています。セルの値をリストに追加しないでください。

于 2013-02-21T23:40:05.563 に答える