OrangeSignal CSV 1.2.0 リリースしました

皆さんこんばんは!杉澤です。

昨日のエントリで書いた CSV 1.2 を先程リリースしました。

このバージョンでは主に日時や数値などの変換機能を追加しています。
この変換機能ですが、
複数 CSV 列 ⇔ POJO オブジェクトのフィールド
マッピングが可能となっています。

どういうことかと言うと、例えば日付と時間の2つの項目列のある CSV を、POJO なオブジェクトの Date フィールドへ日時として設定したり、またその逆に Date フィールドから2つの CSV 項目列として出力できるようになっています。以下具体例を記載します。

↓こんな感じの CSV があったとします。

日付,時刻,名称,価格
2009/01/01,12:34:56,商品A,10000
2009/01/02,10:20:30,商品B,20000

↓こんな感じでロードします。

List list = new CsvColumnNameMappingBeanManager()
 .load(Order.class)
 .column("日付","date",new SimpleDateFormat("yyyy/MM/dd"))
 .column("時刻","date",new SimpleDateFormat("HH:mm:ss"))
 .column("名称","name")
 .column("価格","price",new DecimalFormat("#0"))
 .from(new File("order.csv"));

↓保存する場合はこんな感じです。

new CsvColumnNameMappingBeanManager()
 .save(list, Order.class)
 .column("日付","date",new SimpleDateFormat("yyyy/MM/dd"))
 .column("時刻","date",new SimpleDateFormat("HH:mm:ss"))
 .column("名称","name")
 .column("価格","price",new DecimalFormat("#0"))
 .to(new File("order.csv"));

column で同じフィールド名を指定することで複数 CSV 列とのマッピングができます。ただしこの複数列指定時は同時に Format を必ず指定してやる必要があります。(でないと文字列の分解・再構成方法がわからんので…)

※その他の追加・変更内容の詳細は変更履歴をごらんください。
変更履歴