« 散瞳薬×晴天 | Main | Aipoのインストーラって・・・ »

2011.05.20

XLSBeansでDate型にマッピング

Excelのデータの読込は、これまで Java Excel ApiApache POI を使っていたのですが、今回、何となく XLSBeans を使ってみました(ExCella にも興味があったのですが)。

@LabelledCell アノテーションを複数指定することで、「タイトル」的なものを複数持たせることができるんですね。で、どこからを「1行分のデータ」として認識させるのかと思っていたら、@HorizontalRecords アノテーションで tableLabel を指定すると、その次の行をヘッダー行として認識するような感じでしょうか?

で、ちょっとはまったのが、java.util.Date型へのバインドができないってことでしょうか。ソースを追ってみると、 net.java.amateras.xlsbeans.Utils#convertValue(Class type, String value) の処理で、Date型が処理されていないことが関係しているのではないかと(セルの値が String で渡されていることも関係?)。
Date型を諦めてStringにしてマッピングし、実際に使用する時にDate型に戻すことも考えたのですが、

} else if(type.equals(Date.class)) {
  if (value.length() == 0) {
    return null;
  }
  SimpleDateFormat f = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  try {
    return f.parse(value);
  } catch (ParseException e) {
    return null;
  }
}

のような感じの処理を追加して対応。本当は、DateFormatでいろいろと考慮しなければいけないような気がするのですが、用途が限定されているので今回はこれで誤魔化しています(^^;

[XLSBeans]型変換を拡張できるようにして欲しい が近い内容のような感じですね。

|

« 散瞳薬×晴天 | Main | Aipoのインストーラって・・・ »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference XLSBeansでDate型にマッピング:

« 散瞳薬×晴天 | Main | Aipoのインストーラって・・・ »