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
↓こんな感じでロードします。
Listlist = 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 を必ず指定してやる必要があります。(でないと文字列の分解・再構成方法がわからんので…)
※その他の追加・変更内容の詳細は変更履歴をごらんください。
変更履歴