@XlsBooleanConverter

Excelのセルの種類が「ブール型」以外の場合に、Javaの「boolean/Boolean」にマッピング規則を定義します。

単純に「true、false」以外に、「○、×」とのマッピングも可能となります。

読み込み時の値の指定

属性 loadForTrueloadForFalse で読み込み時のtrueまたはfalseと判断するの候補の値を指定します。

  • 属性loadForTrueとloadForFalseの値に重複がある場合、loadForTrueの定義が優先されまます。

  • 属性laodForTrueを指定しない場合、デフォルトで「"true", "1", "yes", "on", "y", "t"」が設定されます。

  • 属性loadForFalseを指定しない場合、デフォルトで「"false", "0", "no", "off", "f", "n"」が設定されます。

  • 属性 ignoreCase の値をtrueにすると、読み込み時に大文字、小文字の区別なく候補の値と比較します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
public class SampleRecord {

    // boolean型の読み込み時のtrueとfalseの値の変換規則を指定します。
    @XlsColumn(columnName="ステータス")
    @XlsBooleanConverter(
            loadForTrue={"○", "有効", "レ"},
            loadForFalse={"×", "無効", "-", ""})
    private boolean availaled;

    // 読み込み時の大文字・小文字の区別を行わない
    @XlsColumn(columnName="チェック")
    @XlsBooleanConverter(
          loadForTrue={"OK"},
          loadForFalse={"NO"},
          ignoreCase=true)
    private Boolean checked;
}

書き込み時の値の指定

属性 saveAsTruesaveAsFalse で書き込み時のtrueまたはfalse値に該当する文字を指定します。

  • 属性saveAsTrueを指定しない場合は、デフォルトで"true"が設定され、セルのタイプもブール型になります。

  • 属性saveAsFalseを指定しない場合は、デフォルトで"false"が設定され、セルのタイプもブール型になります。

  • 読み込みと書き込みの両方を行う場合、属性loadForTrueとloadForFalseの値に属性saveAsTrueとsaveAsFalseの値を含める必要があります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
public class SampleRecord {

    // boolean型の書き込み時のtrueとfalseの値の変換規則を指定します。
    @XlsColumn(columnName="ステータス")
    @XlsBooleanConverter(
            loadForTrue={"○", "有効", "レ"}, // 読み書きの両方を行う場合、書き込む値を含める必要がある。
            loadForFalse={"×", "無効", "-", ""},
            saveAsTrue="○",
            saveAsFalse="-")
    )
    private boolean availaled;

}

変換に失敗した際の処理

読み込み時にtrueまたはfalseに変換できない場合、例外TypeBindExceptionが発生します。

  • 属性 failToFalse をtrueに設定することで、変換できない場合に強制的に値をfalseとして読み込み、例外を発生しなくできます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
public class SampleRecord {

    // 読み込み時に変換できない場合に、強制的に値をfalseとして読み込みます。
    @XlsColumn(columnName="ステータス")
    @XlsBooleanConverter(
            loadForTrue={"○", "有効", "レ"},
            loadForFalse={"×", "無効", "-", ""},
            failToFalse=true)
    private boolean availaled;

}