11. 独自の表・セルのマッピング方法
Excelのシートを独自の基準で走査して、Javaクラスにマッピングする、 FieldProcessorを実装できます。
読み込み時用と書き込み時用のメソッドがあり、それぞれ実装します。
抽象クラス「
com.gh.mygreen.xlsmapper.fieldprocessor.AbstractFieldProcessor
」を継承すると便利です。実装のサンプルは、パッケージ
com.gh.mygreen.xlsmapper.fieldprocessor.impl
以下に格納されているクラスを参照してください。
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()
から取得できます。
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+]
1// 独自のマッピング用のアノテーションの作成
2@Target({ElementType.METHOD, ElementType.FIELD})
3@Retention(RetentionPolicy.RUNTIME)
4@Documented
5@XlsFieldProcessor(SampleFieldProcessor.class) // 対応するFieldProcessorの指定
6public @interface XlsSampleAnno {
7 // ・・・属性の定義
8}