13. システム設定
13.1. Confugrationによる設定
読み込み時及び書き込み時の動作をConfigurationクラスでカスタマイズできます。
1// 設定用のオブジェクトConfigurationの作成
2Configuration config = new Configuration();
3
4// シートが見つからない場合にエラーにしない。
5config.setIgnoreSheetNotFound(true);
6
7// ConfigurationクラスをXlsMapperに渡す。
8XlsMapper xlsMapper = new XlsMapper();
9xlsMapper.setConfiguration(config);
10
11// 設定を変更したXlsMapperでシートの読み込み
12SheetObject sheet = xlsMapper.load(
13 new FileInputStream("example.xls"), SheetObject.class);
Configurationは、XlsMapperクラスのインスタンスを作成時にも持っているため、次のような変更もできます。
1XlsMapper xlsMapper = new XlsMapper();
2
3// XlsMapperクラスから直接XlsMapperConfigのインスタンスを取得し変更する。
4xlsMapper.getConfiguration().setIgnoreSheetNotFound(true);
5
6// 設定を変更したXlsMapperでシートの読み込み
7SheetObject sheet = xlsMapper.load(
8 new FileInputStream("example.xls"), SheetObject.class);
Configurationでは以下の設定ができます。
プロパティ名 |
クラス型 |
説明 |
---|---|---|
|
|
シートが見つからなくても無視するかどうか。
初期値は'false'です
|
|
|
ラベルを正規化(空白、改行、タブを除去)して、マッピングするかどうか
初期値は'false'です。
Ver.1.1以上 から利用可能です。
|
|
|
マッピングするラベルに
/正規表現/ と記述しておくと正規表現でマッピングできるかどうか。初期値は'false'です。
Ver.1.1以上 から利用可能です。
|
|
|
型変換エラーが発生しても処理を続けるかどうか。
初期値は'false'です。
Ver1.1以前 は、
skipTypeBindFailure という名称です。 |
|
|
|
|
|
書き込み時に名前の定義範囲を修正するかどうか。
アノテーション @XlsHorizontalRecords 、@XlsVerticalRecords でレコードの追加を行った箇所に名前の定義があるときに考慮します。
初期値は'false'です。
Ver.0.3以上 から利用可能です。
|
|
|
書き込み時に名前のセルの入力規則を修正するかどうか。
アノテーション @XlsHorizontalRecords 、@XlsVerticalRecords でレコードの追加を行った箇所に入力規則が設定されているときに考慮します。
初期値は'false'です。
Ver.0.3以上 から利用可能です。
|
|
|
書き込み時に式の再計算をするか設定します。
数式を含むシートを出力したファイルを開いた場合、一般的には数式が開いたときに再計算されます。
ただし、大量で複雑な数式が記述されていると、パフォーマンスが落ちるため 'false' 設定すると無効にすることもできます。
初期値は'true'です。
Ver.1.5以上 から利用可能です。
|
|
|
読み込み時にセルの値をキャッシュして処理速度の向上を行うかどうか。書き込み時に名前のセルの入力規則を修正するかどうか。
初期値は'true'です。
Ver.2.0以上 から利用可能です。
|
|
|
POIのセルの値をフォーマットして文字列として取得するクラスです。
実装は、Ver.0.4から Excel-CellFormatter を利用しています。
|
|
|
フィールドプロセッサーを管理します。
|
|
|
セルの値をJavaオブジェクトに変換するクラスを管理します。
|
|
|
読み込み時などのJavaBeansオブジェクトのインスタンスを作成すためのコールバック用クラス。
独自の実装を渡すことで、SpringFrameworkなどのDIコンテナで管理しているクラスを使用できます。
|
|
|
マッピング時のエラー情報
SheetBindingErrors のインスタンスを作成すためのコールバック用クラス。独自の実装を渡すことで、SpringFrameworkなどのDIコンテナで管理しているクラスを使用できます。
Ver.2.0以上 から利用可能です。
|
|
|
アノテーション @XlsSheet に基づき処理対象のシートを抽出するクラス。
Ver.1.1以上 から利用可能です。
|
|
|
アノテーション @XlsFormula の属性
value で指定した数式を独自の変数やEL式をフォーマットする際に利用します。Ver.1.5以上 から利用可能です。
|
|
|
|
|
|
セルのコメント情報をマッピングするデフォルトの処理を設定します。
詳細は、シート上のコメントの取得 や @XlsCommentOption を参照してください。
Ver.2.1以上 から利用可能です。
|
13.2. Javaシステムプロパティによる設定
Javaシステムプロパティによる設定可能な項目一覧を下記に示します。
javaシステムプロパティは、JVMの起動パラメータ -Dxxx=yyy
または、 System.setProperty("xxx", "yyy")
で指定します。
プロパティ名 |
説明 |
xlsmapper.jexlRestricted [2.3+]
|
ExpressionLanguageJEXLImpl にて、JEXLを Restrict パーミッションでEL式を評価するか指定します。デフォルトは true で、JexlPermissions.RESTRICTED でEL式が評価されます。
値を false に指定すると、JexlPermissions.UNRESTRICTED が設定され、EL式が制限なく評価されますが、
ただし、ELインジェクションの脆弱性に繋がる可能性があるので注意してください。
|
xlsmapper.jexlPermissions [2.3+]
|
ExpressionLanguageJEXLImpl にて、JEXLを評価する際のパーミッションを指定します。EL式中で実行/参照可能なパッケージを指定し、複数指定するときはカンマ(,)区切りで指定します。
例 . sample1.*,sample2.core.*。
このプロパティは、
xlsmapper.jexlRestricted の値が true のときにおいて、Restrictパーミッションで実行されるときのみ有効になります。 |