[POI] Excelの「数値が文字列として保存れています」の罠

POIで数字の入ったセルを扱う場合に、そのセルの形式が文字列になっているか数値になっているかで挙動が異なる場合がある。
だけど、Excelファイルをパッと見ただけではどちらの形式になっているのか分からない。
しかも、「セルの書式設定」での設定は関係ないようだ。

判別方法

その際の判別方法は、「オプション」→「エラーチェック」の「ルール:文字列として保存されている数値」をオンにする。(デフォルトではオン)
そうすると、セルの左上に緑色の三角マークが表示されるようになる。
この状態が「文字列として扱われる数字」。
逆に、緑三角マークの無い数字セルは「数値として扱われている数字」。

相互変換方法

「数値数字セル」→「文字列数字セル」… セルの頭に「'」(シングルクォート)を付ける。
(緑三角エラーが出るようになる)


「文字列数字セル」→「数値数字セル」… セルを一度編集状態にする。(F2キーやダブルクリック)
(緑三角エラーが消える)