excelpojo (1.1.2) | 2010-08-19 16:11 |
基本的にはセルの値をPOJOのフィールドで指定した型として取得します。
下記にそれぞれの型による注意事項を記載します。
POJO側の型が java.lang.String だった場合、Excelのセルが数値・通貨・会計・パーセンテージの書式の場合には、極力Excelの表示フォーマットに従って取得します。
一部フォーマットが認識できなかったり、負数が赤字のフォーマットだったりした場合などは、Excel上で表示されているものと異なる場合があります。
下表にまとめました。
フォーマット | 表示どおり取得可能 | 不可能だった際の取得フォーマット |
標準(数値) | ○ | |
標準(文字列) | ○ | |
数値((1,234)) | ○ | |
数値((1,234)) | ○ | |
数値(1,234) | × | -1234 |
数値(-1,234) | ○ | |
数値(-1,234) | ○ | |
数値(△1,234) | ○ | |
数値(▲1,234) | ○ | |
数値((1234.56)) | ○ | |
数値((1234.56)) | ○ | |
数値(1234.56) | × | -1234.56 |
数値(-1234.56) | ○ | |
数値(-1234.56) | ○ | |
数値(△1234.56) | ○ | |
数値(▲1234.56) | ○ | |
通貨((\123,456)) | × | (123,456) |
通貨((\123,456)) | × | (123,456) |
通貨(\123,456) | × | -123,456 |
通貨(-\123,456) | × | ($123,456) |
通貨(-\123,456) | × | ($123,456) |
通貨((\123,456.78)) | × | (123,456.78) |
通貨((\123,456.78)) | × | (123,456.78) |
通貨(\123,456.78) | × | -123,456.78 |
通貨(-\123,456.78) | × | ($123,456.78) |
通貨(-\123,456.78) | × | ($123,456.78) |
会計(\) | × | -123456 |
会計 | × | -123456 |
会計(\ 少数2桁) | × | -123456.78 |
会計(少数2桁) | × | -123456.78 |
パーセンテージ | ○ | |
パーセンテージ(少数2桁) | ○ |
セルのフォーマットによっては日付と認識できない場合もあるため、
セルの値を取得する際に、日付は文字列として取得することをお勧めします。
POJO側の型に java.util.Date を使用した場合、セルが日付と認識できない場合には例外を上げます。
下表で日付として認識可能なフォーマットの場合に正しく動作します。
POJO側の型に java.lang.String を使用した場合、極力Excelの表示フォーマットに従って取得します。
また、日付として認識できるが、フォーマットどおりの文字列として取得できない場合には、「yyyy/MM/dd」として取得します。
日付としても認識できない場合は、日付データのシリアル値の文字列表現として取得します。
下表に動作をまとめました。
日付フォーマットのセル値取得対応
フォーマット | 日付として認識 | フォーマットどおりの文字列として取得可能 |
*yyyy/M/d | ○ | ○ |
d-mmm-yy | ○ | ○ |
d-mmm | ○ | ○ |
mmm-yy | ○ | ○ |
h:mm AM/PM | ○ | ○ |
h:mm:ss AM/PM | ○ | ○ |
h:mm | ○ | ○ |
h:mm:ss | ○ | ○ |
yyyy/m/d h:mm | ○ | ○ |
m/d/yy | ○ | ○ |
yyyy"年"m"月"d"日" | ○ | ○ |
h"時"mm"分" | ○ | ○ |
h"時"mm"分"ss"秒" | ○ | ○ |
mm:ss | ○ | ○ |
mm:ss.0 | ○ | ○ |
yyyy"年"m"月" | ○ | ○ |
m"月"d"日" | ○ | ○ |
[$-411]ge.m.d | ○ | ○ |
[$-411]ggge"年"m"月"d"日" | ○ | ○ |
*yyyy年M月d日 | ○ | × |
[$-F800]dddd, mmmm dd, yyyy | ○ | × |
Gyy.m.d | × | × |
GGGGyy年m月d日 | × | × |
yyyy年M月d日 | × | × |
yyyy年M月 | × | × |
M月d日 | × | × |
yyyy/M/d | ○ | × |
yyyy/M/d H:m a | ○ | × |
yyyy/M/d HH:m | ○ | × |
M/d | ○ | × |
M/d/yy | ○ | × |
MM/dd/yy | ○ | × |
dd-MMM | ○ | × |
dd-MMM-yy | ○ | × |
dd-MMM-yy | ○ | × |
MMM-yy | ○ | × |
MMMM-yy | ○ | × |
[$-411]ge.m.d;@ | × | × |
yyyyMMdd | ○ | × |
yyyy/MM/dd | ○ | × |
POJO型のフィールドが Map 型の場合には、マップのエントリ (キーと値のペア) は、
Map.Entry<String, String> となります。
セルの値を String として取得する際の変換は上記をご確認ください。
セルの値として TRUE / FALSE 以外に、yes(true) / no(false) も boolean の値として認識します。
POJOの getter として、!isFiledName() のような「get」ではなく「is」メソッドでもアクセス可能です。
[ページ情報]
更新日時: 2010-07-01 17:49:21, 更新者: shin-kawahara
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:ログインユーザ