タツノオトシゴのブログ

主にJavaに関するものです。

XlsMapperのリリース

以前に作っていた、XLSBeansの拡張版を「XlsMapper」としてリリースしました。

書き込み機能の他、Validation機能を追加しました。

Validation機能は、Springの仕様を参考に作りましたが、途中からSpring依存でも良さそうな気がしてきました。


FieldProcessorのロジック部分、AnnotationReader部分はXLSBeansのコードが残っていますが、他は書き換えました。

XLSBeansとの違い

下記のURLにまとめてあります。
http://mygreen.github.io/xlsmapper/diff_xlsbeans.html

【改善機能】

  • アノテーションの名称を"@Xls〜"として、他のライブラリのアノテーションと区別がつきやすいようにしています。
  • エラーメッセージの内容を詳細に表示し、設定間違いの対応をしやすくしています。
  • Generics対応として、@XlsMapColums、@XlsIterateTablesにも対応しており、マッピング先のClassを指定する必要がありません。
  • シートの座標位置の取得が、@XlsMapColumnを付与したフィールドにも対応しています。
  • アノテーションを付与するフィールドの修飾子として、public以外のprivate/protectedにも対応しています。

【追加機能】

  • 書き込み機能があります。
    • @XlsHorizontalRecords/@XlsVerticalRecordsに書き込み用の属性を追加し、 行が余ったときや足りないときの動作をカスタマイズできます。
  • 読み込み時、書き込み時のコールバック用メソッドを定義するためのアノテーション @XlsPreLoad/@XlsPostLoad/@XlsPreSave/@XlsPostLoadが使用できます。
  • 型変換機能として、専用のアノテーションを利用して各フィールドごとに細かく設定できます。
  • 読み込んだシートの内容をチェックするValidation機能があります。
    • 独自にValidatorを実装する方式の他、Bean Validation 1.0/1.1に対応しています。
  • セルの座標位置のように、マッピング対象の見出し名を取得するこができます。

【削除機能】

  • コードをシンプルにするため、jExcel API対応を排除し、Apache POIのみに対応しています。
  • アノテーション@PostProcessorを削除しました。 代わりに、@XlsPreLoad/@XlsPostLoad/@XlsPreSave/@XlsPostLoadが使用できます。

今後の予定

  • マニュアルをもう少し詳しく書く。
  • テスタを作成して、品質を上げる。