@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にすると、読み込み時に大文字、小文字の区別なく候補の値と比較します。

 1public class SampleRecord {
 2
 3    // boolean型の読み込み時のtrueとfalseの値の変換規則を指定します。
 4    @XlsColumn(columnName="ステータス")
 5    @XlsBooleanConverter(
 6            loadForTrue={"○", "有効", "レ"},
 7            loadForFalse={"×", "無効", "-", ""})
 8    private boolean availaled;
 9
10    // 読み込み時の大文字・小文字の区別を行わない
11    @XlsColumn(columnName="チェック")
12    @XlsBooleanConverter(
13          loadForTrue={"OK"},
14          loadForFalse={"NO"},
15          ignoreCase=true)
16    private Boolean checked;
17}

書き込み時の値の指定

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

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

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

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

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

変換に失敗した際の処理

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

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

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