« 散瞳薬×晴天 | 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

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/51714866

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

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