JavaExcelAPI 2.6.12 で NullPointerException その2

以前、次のような NullPointerException が発生した時に 2.6.12 から 2.6.10 にダウングレードすることで、例外発生を回避できたというエントリーを書きました。

JavaExcelAPI 2.6.12 で NullPointerException - Java開発のんびり日記

java.lang.NullPointerException
at jxl.biff.DVParser.<init>(DVParser.java:669)
at jxl.biff.BaseCellFeatures.getDVParser(BaseCellFeatures.java:501)
at jxl.write.biff.SheetWriter.writeDataValidation(SheetWriter.java:1137)
at jxl.write.biff.SheetWriter.write(SheetWriter.java:581)
at jxl.write.biff.WritableSheetImpl.write(WritableSheetImpl.java:1558)
at jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:950)

また、NullPointerException が発生して前回と同じ事象にもかかわらず、忘れ去って新たに解決策を模索してしまいました。

入力規則が悪いらしい

前回は解決策がわからずじまいでしたが、今回は対象の Excel がコンパクトだったことが幸いして、原因特定することができました。

セルに設定されている「データの入力規則」を解除すると、NullPointerException が発生しなくなりました。「入力時メッセージ」または「日本語入力」が設定されているとダメなようです。なぜだか知りませんが。

メニューバー > データ(D) > 入力規則(L) で「データの入力規則」ダイアログを開くことができます。次のように設定を解除してください。

・「セルの選択時にメッセージを表示する」のチェックをはずす
IME - 日本語入力で「コントロールなし」を設定する


もうちょっと、エラーメッセージとかきちんと出力して原因特定しやすいようにしてほしい…