POI2.5.1からエクセル書式情報を取得する

エクセルの書式情報は
HSSFWorkBook-WorkBook-formats-FormatRecordインスタンス
field_1_index_codeと結びついている。
この値はHSSFCellStyle#getDataFormat()で取得できる。
ただし、ここで返される値はshort値。
FormatRecordとして登録されているレコードならば、
HSSFDataFormat format = book.createDataFormat();
format.getFormat(style.getDataFormat());
のようなコードで値を取得出来る。
ただし、FormatRecordはユーザ定義として新規に書式が登録さ
れた場合などにしか作成されず、(完全な条件は未確認)エク
セルが元々持つ"平成9年3月4日"などの書式は、xlsファイルでは
なくアプリケーションが持つ情報となっている。
従ってコード内で取得することは出来なそうな気がしたが、POI
ではそのようなデフォルトの書式情報をHSSFDataFormat内で固定
値として管理していた。
ただし、POIは日本語対応がおろそかになっているから、英語版の
内容がそのままハードコードされている。
この中身を日本語版のエクセルアプリが持つ書式情報とマッチす
るよう書き換えてあげれば、うまく動作させることが出来る。
この部分を書き換えるのは気が引けるので、short値を調べて独自
の変換マップを持ったクラスを作成してあげるのが○
short値の設定情報は
http://sc.openoffice.org/excelfileformat.pdf
の160,161ページに書いてある。