XlsCellOption.java
- package com.gh.mygreen.xlsmapper.annotation;
- import java.lang.annotation.Documented;
- import java.lang.annotation.ElementType;
- import java.lang.annotation.Retention;
- import java.lang.annotation.RetentionPolicy;
- import java.lang.annotation.Target;
- import org.apache.poi.ss.usermodel.HorizontalAlignment;
- import org.apache.poi.ss.usermodel.VerticalAlignment;
- /**
- * 書き込み時のセルの配置などのを指定するためのアノテーションです。
- *
- * @since 2.0
- * @author T.TSUCHIE
- *
- */
- @Target({ElementType.METHOD, ElementType.FIELD})
- @Retention(RetentionPolicy.RUNTIME)
- @Documented
- public @interface XlsCellOption {
- /**
- * 'true'のとき書き込み時にセルの「折り返し設定」を有効にします。
- * 'false'の場合は、既存の折り返し設定は変更せずに、テンプレートファイルの設定を引き継ぎます。
- * <p>属性{@link #wrapText()}と{@link #shrinkToFit()}の両方の値をtrueに指定する場合、
- * {@link #shrinkToFit()}の設定が優先され、「縮小して全体を表示する」が有効になります。
- * </p>
- *
- * <pre class="highlight"><code class="java">
- * public class SampleRecord {
- *
- * {@literal @XlsColumn(columnName="ID")}
- * {@literal @XlsCellOption(wrapText=true)} // 「縮小して全体を表示する」が有効になる。
- * private int id;
- *
- * }
- * </code></pre>
- *
- * @return trueの場合、「折り返し設定」が有効になります。
- */
- boolean wrapText() default false;
- /**
- * 'true'のとき書き込み時にセルの「縮小して表示」を有効にします。
- * 'false'の場合は、既存の縮小して表示は変更せずに、テンプレートファイルの設定を引き継ぎます。
- * <p>属性{@link #wrapText()}と{@link #shrinkToFit()}の両方の値をtrueに指定する場合、
- * {@link #shrinkToFit()}の設定が優先され、「縮小して全体を表示する」が有効になります。
- * </p>
- *
- * <pre class="highlight"><code class="java">
- * public class SampleRecord {
- *
- * {@literal @XlsColumn(columnName="名前")}
- * {@literal @XlsCellOption(shrinkToFit=true)} //「折り返して全体を表示する」が有効になる。
- * private String name;
- *
- * {@literal @XlsColumn(columnName="備考")}
- * {@literal @XlsCellOption(shrinkToFit=false)} // 設定しない場合は、テンプレート設定が有効になる。
- * private String comment;
- *
- * }
- * </code></pre>
- *
- * @return trueの場合、「縮小して表示」が有効になります。
- */
- boolean shrinkToFit() default false;
- /**
- * インデントを指定します。
- * <p>インデントが指定可能な横位置(左詰め/右詰め/均等割り付け)のときのみ有効になります。</p>
- *
- * <pre class="highlight"><code class="java">
- * public class SampleRecord {
- *
- * // インデント可能な横位置と一緒にインデントを指定します。
- * {@literal @XlsColumn(columnName="名前")}
- * {@literal @XlsCellOption(horizontalAlign=HorizontalAlign.Left, indent=2)}
- * private String name;
- *
- * }
- * </code></pre>
- *
- * @return 0以上の値を設定します。-1以下のとき値は現在の設定を引き継ぎます。
- */
- short indent() default -1;
- /**
- * セルの横位置を指定します。
- *
- * <pre class="highlight"><code class="java">
- * public class SampleRecord {
- *
- * {@literal @XlsColumn(columnName="名前")}
- * {@literal @XlsCellOption(horizontalAlign=HorizontalAlign.Center)}
- * private String name;
- *
- * }
- * </code></pre>
- *
- * @return セルの横位置を表す列挙型 {@link HorizontalAlign}を指定します。
- */
- HorizontalAlign horizontalAlign() default HorizontalAlign.Default;
- /**
- * セルの縦位置を指定します。
- *
- * <pre class="highlight"><code class="java">
- * public class SampleRecord {
- *
- * {@literal @XlsColumn(columnName="名前")}
- * {@literal @XlsCellOption(verticalAlign=VerticalAlign.Top)}
- * private String name;
- *
- * }
- * </code></pre>
- *
- * @return セルの縦位置を表す列挙型 {@link VerticalAlign}を指定します。
- */
- VerticalAlign verticalAlign() default VerticalAlign.Default;
- /**
- * セルの横位置のタイプ
- *
- * @since 2.0
- * @author T.TSUCHIE
- *
- */
- public enum HorizontalAlign {
- /** デフォルト(既存の設定を引き継ぐ) */
- Default(null),
- /** 標準 */
- General(HorizontalAlignment.GENERAL),
- /** 左詰め(インデント) */
- Left(HorizontalAlignment.LEFT),
- /** 中央揃え */
- Center(HorizontalAlignment.CENTER),
- /** 右詰め(インデント) */
- Right(HorizontalAlignment.RIGHT),
- /** 繰り返し */
- Fill(HorizontalAlignment.FILL),
- /** 両端揃え */
- Justify(HorizontalAlignment.JUSTIFY),
- /** 選択範囲内で中央 */
- CenterSelection(HorizontalAlignment.CENTER_SELECTION),
- /** 均等割り付け(インデント) */
- Distributed(HorizontalAlignment.DISTRIBUTED)
- ;
- private final HorizontalAlignment poiAlignType;
- private HorizontalAlign(HorizontalAlignment poiAlignType) {
- this.poiAlignType = poiAlignType;
- }
- public HorizontalAlignment poiAlignType() {
- return poiAlignType;
- }
- }
- /**
- * セルの縦位置のタイプ
- *
- * @since 2.0
- * @author T.TSUCHIE
- *
- */
- public enum VerticalAlign {
- /** デフォルト(既存の設定を引き継ぐ) */
- Default(null),
- /** 上詰め */
- Top(VerticalAlignment.TOP),
- /** 中央揃え */
- Center(VerticalAlignment.CENTER),
- /** 下詰め */
- Bottom(VerticalAlignment.BOTTOM),
- /** 両端揃え */
- Justify(VerticalAlignment.JUSTIFY),
- /** 均等割り付け */
- Distibuted(VerticalAlignment.DISTRIBUTED)
- ;
- private final VerticalAlignment poiAlignType;
- private VerticalAlign(VerticalAlignment poiAlignType) {
- this.poiAlignType = poiAlignType;
- }
- public VerticalAlignment poiAlignType() {
- return poiAlignType;
- }
- }
- }