11. 独自の表・セルのマッピング方法

Excelのシートを独自の基準で走査して、Javaクラスにマッピングする、 FieldProcessorを実装できます。

  • 読み込み時用と書き込み時用のメソッドがあり、それぞれ実装します。

  • 抽象クラス「com.gh.mygreen.xlsmapper.fieldprocessor.AbstractFieldProcessor」を継承すると便利です。

  • 実装のサンプルは、パッケージ com.gh.mygreen.xlsmapper.fieldprocessor.impl 以下に格納されているクラスを参照してください。

コード - 11.1 FieldProcessorの作成
 1public class SampleFieldProcessor extends AbstractFieldProcessor<SampleAnno> {
 2
 3    // シートの読み込み時の処理
 4    @Override
 5    public void loadProcess(final Sheet sheet, final Object beansObj, final SampleAnno anno, final FieldAdaptor adaptor,
 6            final Configuration config, final LoadingWorkObject work) throws XlsMapperException {
 7
 8        //TODO: 実装する
 9    }
10
11    // シートの書き込み時の処理
12    @Override
13    public void saveProcess(final Sheet sheet, final Object targetObj, final SampleAnno anno, final FieldAdaptor adaptor,
14            final Configuration config, final SavingWorkObject work) throws XlsMapperException {
15
16        //TODO: 実装する
17
18    }
19}
  • 作成したFieldProcessorは、 FieldProcessorRegistry#registerProcessor(...) にて登録します。

    • システム標準の FieldProcessorRegistry は、XlsMapperConfg#getFieldProcessorRegistry() から取得できます。

コード - 11.2 FieldProcessorの登録
1// 独自のFieldProcessorの登録
2Configuration config = new Configuration();
3config.getFieldProcessorRegistry().registerProcessor(SampleAnno.class, new SampleFieldProcessor());
4
5XlsMapper mapper = new XlsMapper();
6mapper.setConfiguration(config);

また、アノテーションを作成するう際に、メタアノテーション @XlsFieldProcessor でFieldProcessorを指定できます。 [ver2.0+]

コード - 11.3 メタアノテーションを使ったFieldProcessorの指定
1// 独自のマッピング用のアノテーションの作成
2@Target({ElementType.METHOD, ElementType.FIELD})
3@Retention(RetentionPolicy.RUNTIME)
4@Documented
5@XlsFieldProcessor(SampleFieldProcessor.class)  // 対応するFieldProcessorの指定
6public @interface XlsSampleAnno {
7    // ・・・属性の定義
8}