16. リリースノート¶
16.1. ver.2.2 - 2022-01-01¶
#115 POIのバージョンを v5.1.0に更新しました。
以前の POI v3.7 はサポート対象外となります。
POI v4.x でも動作しますが、
@XlsCommentOption
の属性visible
によるコメントの表示/非表示が正しく機能しないため注意してください。
#116 Hibernate Validatorのバージョンを v6.0.20.Final に更新しました。
#110 / #119 テスト用に使用していたライブラリを更新しました。
JUnitを v4.13.1 に更新しました。
LoggerをLog4j v1.xから、Logbackに変更しました。
#120 OGNLのバージョンを v3.3.1に更新しました。
16.2. ver.2.1.1 - 2021-02-13¶
#112
@XlsColumn
などのアノテーションをメソッドにを付与しているとき処理対象外となる事象を修正しました。類似としてすべてのアノテーションによるシートの処理の読み込み時、書き込み時の処理のアクセッサメソッドの判定処理を追加/見直しました。
16.3. ver.2.1 - 2019-06-23¶
セルの値を取得する方法を別ライブラリ excel-cellformatter の最新版ver.0.11に対応しました。
日付の書式の新元号
令和
に対応します。
#103 / #108 XlsMapperのメソッド
getConfiguration/setConfiguration
の綴り間違いを修正しました。#104 セルコメントのマッピング機能を追加しました。
既存のセルのマッピング時にセルコメントもマッピングできるフィールド
comments
を追加( シート上のコメントの取得 )。@XlsComment - セルの座標を直接指定して、セルのコメントをマッピングします。
@XlsLablledComment - レコードの隣接するカラムをマッピングします。
@XlsCommentOption - 書き込み時のセルのコメントのサイズなどの制御を指定します。
16.4. ver.2.0 - 2018-06-30¶
前提条件 を変更しました。
Java8以上に変更しました。Java7は非対応になります。
POI-3.17 に変更しました。POI-3.16以前は非対応となります。
BeanValidation 2.0に対応しました。
セルの値を取得する方法を別ライブラリ excel-cellformatter の最新版ver.0.10に対応しました。
マッピング可能な日時型として、以下を追加しまいた。
java.time.LocalDate
java.time.LocalTime
java.time.LocalDateTime
隣接するセルをマッピング可能なアノテーションを追加しました。
@XlsArrayCells - 連続し隣接するセルを配列またはリストにマッピングします。
@XlsLabelledArrayCells - 見出し付きの連続し隣接するセルを配列またはリストにマッピングします。
@XlsArrayColumns - レコードの隣接するカラムをマッピングします。
@XlsArrayOption - 上記のアノテーションの書き込み時の設定を補助します。
既存のアノテーションから機能を分離し、新たに以下の補助的なアノテーションを追加しました。
値をトリムするアノテーション
@XlsConverter(trim=true)
を機能分離し、 @XlsTrim を追加しました。初期値を指摘するアノテーション
@XlsConverter(defaultValue="初期値")
を機能分離し、 @XlsDefaultValue を追加しました。セルの書き込み時の制御設定を行うアノテーション
@XlsConverter(wrapText=true, shrinkToFit=false)
を機能分離し、@XlsCellOption <annotationXlsCellOption> を追加しました。さらに、
@XlsCellOption
において、属性horizontalAlign
、verticalAlign
にて、セルの横方向、縦方向の位置を指定できます。
レコードの書き込み時のオプションを指定するアノテーション
@XlsHorizontalRecords(overRecord=..., remainedRecord=...)
を機能分離し、 @XlsRecordOption を追加しました。アノテーション
@XlsVerticalRecords(overRecord=..., remainedRecord=...)
も同様に機能分離しました。
@XlsHorizontalRecords/XlsVerticalRecords
でレコードをマッピングする際に、データ開始位置をプログラマティックに指定できるアノテーション @XlsRecordFinder を追加しました。レコードをマッピングする際に、そのレコードを除外するアノテーション
@XlsIsEmpty
の名称を @XlsIgnorable に変更しました。さらに、レコードを除外する条件として、
@XlsHorizontalRecords(ignoreEmptyRecord=true)
を指定しなくても除外するようにしました。属性ignoreEmptyRecord
は削除しました。
日時型のマッピング時の書式を指定するアノテーション
@XlsDateConverter
の名称を@XlsDateTimeConverter
に変更しました。列挙型のマッピング時の書式を指定するアノテーション
@XlsEnumConverter
において、属性valueMethodName
の名称をaliasName
に変更しました。配列/リスト型にマッピング時の書式を指定するアノテーション
@XlsArrayConverter
において、属性の名称を以下に変更しました。属性の名称を
itemConverterClass
→elementConverterClass
に変更しました。属性の名称を
ignoreEmptyItem
→ignoreEmptyElement
に変更しました。属性の名称を
itemClass
→elementClass
に変更しました。要素をパース/フォーマットするクラス
ItemConverter
の名称をElementConverter
に変更しました。 デフォルト実装クラスの名称もDefaultItemConverter
→DefaultElementConverter
に変更しました。
マッピングの順番を指定するアノテーション
@XlsHint(order=1)
の名称を @XlsOrder に変更しました。レコードをスキップするかどうか判定用のメソッドを指定するアノテーション
@XlsIsEmpty
の名称を @XlsIgnorable に変更しました。見出し付きセルをマッピングするアノテーション @XlsLabelledCell において、見出し用のセルが結合されているかを考慮する属性
labelMarged
を追加しました。従来は、結合されていても考慮されていないため、属性
skip
で結合セル分を読み飛ばしていましたが、属性labelMarged
の初期値は true となるため、動作が変わってきます。
縦方向のレコードをマッピングするアノテーション @XlsVerticalRecords において、表の開始位置を指定する 属性
bottom
を追加しました。繰り返す表をマッピングするアノテーション @XlsIterateTables において、以下の変更を行いました。
マッピング可能なクラスタイプとして
java.util.Collection/java.util.Set
型に対応しました。縦方向のレコードをマッピングするアノテーション @XlsVerticalRecords に対応しました。
開始位置を指定する属性
address
を削除しました。
システム設定のプロパティ を指定するクラス
XlsConfig
の名称をConfiguration
に変更しました。さらに、以下の項目を追加しました。cacheCellValueOnLoad
- 読み込み時にセルの値をキャッシュして処理速度の向上を行うかどうか指定します。SheetBindingErrorsFactory
- マッピング時のエラー情報SheetBindingErrors
のインスタンスを作成すためのコールバック用クラスを指定します。annotationMapping
- XMLなどによるアノテーションのマッピング情報を設定します。
XMLによるマッピングの指定方法を、システム設定のプロパティで設定するよう変更しました。詳細は、XMLによるマッピング方法 を参照してください。
値の検証を行うインタフェース
ObjectValidator
、FieldValidtor
において、BeanValidationのグループに相当する機能を追加し、指定できるようにしました。値の検証の結果作成されるエラーオブジェクトをメッセージに変換するクラス
SheetMessageConverter
の名称をSheetErrorFormatter
に変更しました。独自のクラスタイプにマッピングする方法が変更になりました。詳細は、 独自のクラスタイプの対応方法 を参照してください。
独自の表をマッピングする方法の指定方法として、アノテーション
@XlsFieldProcessor
による方法を追加しました。詳細は、 独自の表・セルのマッピング方法 を参照してください。表・セルをマッピングする各種アノテーションに、属性
cases
を追加し、読み込み時/書き込み時と任意の処理で適用すること指定できるようにしました。リスナーを指定するアノテーション
@XlsListener
において、リスナークラスを複数指定できるようにしました。さらに、属性
listenerClass
の名称をvalue
に変更し、属性名の指定を省略できるようにしました。
パッケージ構成を以下のように変更しました。
com.gh.mygreen.xlsmapper.fieldprocessor.processor
→com.gh.mygreen.xlsmapper.processor.impl
に変更しました。com.gh.mygreen.xlsmapper.cellconverter.converter → ``com.gh.mygreen.xlsmapper.converter.impl
に変更しました。com.gh.mygreen.xlsmapper.validation.fieldvalidation
をcom.gh.mygreen.xlsmapper.validation.fieldvalidation.impl
に分割しました。UtilやNavigator、IsEmptyBuilder クラスなどを、
com.gh.mygreen.xlsmapper.util
パッケージに移動しました。
セルのアドレスを表現するクラス
CellPosition
を追加しました。このクラスは、
java.io.Serializable
/Comparable/Cloneable
を実装しており、扱いやすくなっています。さらに、各クラス
java.awt.Point/org.apache.poi.ss.util.CellAddress
に変換可能です。
本ライブラリのルートの例外クラス
XlsMapperException
を 非検査例外RuntimeExceptionに変更しました。フィールド情報を管理するクラス
FieldAdapter
の名称をFieldAccessor
に変更しました。パッケージもcom.gh.mygreen.xlsmapper.fieldaccessor
に移動しました。複数のシートをマッピングした結果を格納するクラス
SheetBingingErrorsContainer
の名称をMultipleSheetBindingErrors
に変更しました。実行時に出力されるメッセージを日本語化しました。
メッセージ定義のプロパティファイル
SheetValidationMessages.properties
の文字コードをUTF-8に変更し、asciiコードへの変換を不要にしました。
16.5. ver.1.6 - 2017-01-02¶
#88 POI-3.15で、クラス
CellCommentStore
コンパイルエラーが発生する事象を修正しました。#89 JSP-EL 2.x使用時に、例外
NoClassDefFoundError
が発生する事象を修正しました。#90 テスタにおいて、テスト結果ファイルを書き込む場所を
src/test/out
からtarget/test_out
に変更しました。#91 セルの値を取得する方法を別ライブラリ excel-cellformatter の最新版ver.0.9.1に対応しました。
#92 POI-3.14以降で、ネストする表を出力するときに例外が発生する事象を修正しました。
#93 不正な数式を書き込んだときのテスタを修正しました。
POI-3.14以降で、POIで使用できない関数を設定したときにエラーが発生しなくなったため、数式を他のケースに変更しました。
#94 POI-3.15で、
@XlsHorizotnalRecords
において、レコードの挿入や削除を行ったレコードより下方にある結合したセルが解除される事象を修正しました。#95
@XlsHorizotnalRecords
において、レコードの削除を行う設定のとき、空のレコードを書き込むとデータ行が全て削除される事象を改善し、必ず、1レコードは残るように修正しました。#96 POI-3.15 で、
CellLink
やjava.net.URL
型において、A1
形式のセルに対するリンクを書き込んだ場合、例外が発生する事象を修正しました。
16.6. ver.1.5.2 - 2016-10-30¶
#87
@XlsHorizontalRecords
で書き込む際に、表の直後に文字がある場合、挿入操作をすると、直後の文字が消えてしまう事象を修正しました。
16.7. ver.1.5.1 - 2016-10-30¶
16.8. ver.1.5.0 - 2016-08-30¶
#83 出力する際の数式を定義するアノテーション @XlsFormula を追加しました。
式の制御、処理を行う システム設定のプロパティ として、
formulaRecalcurationOnSave
、formulaFormatter
を追加しました。EL式の実装である JEXL を依存ライブラリに追加しました。
EL2.xをスタンドアローンで呼び出せるライブラリ standalone-el の最新版ver.0.2に対応しました。
#84 Javadocの記述間違いを修正しました。
16.9. ver.1.4.4 - 2016-07-02¶
セルの値を取得する方法を別ライブラリ excel-cellformatter の最新版ver.0.8.3に対応しました。
#82 : XMLファイルによるマッピング で、アノテーション
@XlsSheet
に対して適用されない事象を修正しました。
16.10. ver.1.4.3 - 2016-05-28¶
セルの値を取得する方法を別ライブラリ excel-cellformatter の最新版ver.0.8.2に対応しました。
Javadocやドキュメントの誤字や表現を修正しました。
16.11. ver.1.4.2 - 2016-05-07¶
バイナリに関係のないCoverturaのリンクが張られおり、実行時エラーとなったためビルドし直しました。
16.12. ver.1.4.1 - 2016-04-29¶
#80 : Java8の場合に、XMLファイルによるマッピング で失敗する事象を修正しました。
セルの値を取得する方法を別ライブラリ excel-cellformatter の最新版ver.0.8に対応しました。
16.13. ver.1.4 - 2016-03-21¶
#79 : @XlsNestedRecords による、入れ子構造の表をマッピングする機能を追加しました。
セルの値を取得する方法を別ライブラリ excel-cellformatter の最新版ver.0.7に対応しました。
16.14. ver.1.3 - 2016-03-13¶
#77 : @XlsListener による、ライフサイクル・コールバック処理をリスナクラスに別途実装する機能を追加しました。
#78 : 複数のアノテーションが設定されている場合、1つしか処理されない事象を改善しました。
16.16. ver.1.2 - 2016-03-12¶
システムプロパティ
skipTypeBindFailure
の名称をcontinueTypeBindFailure
に変更し、意味と名称が一致するようにしました。#71 : アノテーション
@XlsColumn
などを付与したフィールドが、java.util.LinkedList
などの具象クラスの場合をサポートしました。#76 : アノテーション @XlsMapColumns に属性
nextColumnName
を追加、マッピングの終了条件のセルを指定できるようにしました。
16.17. ver.1.1 - 2016-03-08¶
#3 : @XlsArrayConverter に属性
itemConverterClass
を追加し、任意のクラス型を変換できるようにしました。#66 : セルの値を取得する方法を別ライブラリ excel-cellformatter の最新版ver.0.6に対応しました。
#67 : アノテーション @XlsNumberConverter 、 @XlsDateConverter の属性
pattern
を廃止し、 読み込み用の書式の属性javaPattern
と書き込み用の書式の属性excelPattern
を追加しました。#70 : アノテーションのXMLによるマッピング機能の機能追加として、XMLをJavaオブジェクトで組み立てる機能 を追加しました。 それに伴い、次の修正も行いました。
XML読み込み用のクラス
XmlLoader
の名称をXmlIO
に変更し、XMLの書き込み用メソッドを追加しました。例外クラス
XmlLoadException
の名称をXmlOperateException
に変更しました。読み込み時/書き込み時の処理対象となるシートの抽出処理を、
SheetFinder
クラスに分離しました。 XlsMapperConfigのプロパティ「sheetFinder」 でカスタマイズすることができます。
#72 : ラベルや見出しを正規表現で指定、正規化してマッピングする機能を追加しました。
システム設定のプロパティ として、
regexLabelText
,normalizeLabelText
を追加。@XlsLabelledCell の属性
label
,headerLabel
で有効になります。@XlsHorizonalRecords の属性
tableLabel
,terminateLabel
で有効になります。@XlsVerticalRecords の属性
tableLabel
,terminateLabel
で有効になります。@XlsIterateTables の属性
tableLabel
で有効になります。
#73 : 見出し結合されている場合の属性を追加しました。
@XlsHorizonalRecords(headerBottom) を追加しました。
@XlsVerticalRecords(headerRight) を追加しました。
#74 : 型変換用のアノテーションのパッケージ
~.xlsmapper.annotation.converter
を~.xlsmapper.annotation
に移動しました。#75 : 一部のアノテーションの属性名を変更しました。
アノテーション @XlsHorizonalRecords と @XlsVerticalRecords の属性
skipEmptyRecord
をignoreEmptyErecord
に変更しました。アノテーション @XlsConverter の属性
forceWrapText
をwrapText
に、属性forceShrinkToFit
をshrinkToFit
変更しました。
16.18. ver.1.0a - 2015-09-23¶
下記の機能を追加または改善
#63 : 実行すると必要のないCoverturaのクラスのエラーが発生する事象を修正しました。
ビルドをし直しただけで、機能はver.1.0から変更ありません。
16.19. ver.1.0 - 2015-07-19¶
下記の機能を追加または改善
#14 : メッセージ中で利用可能な式言語を EL2.0/3.0、MVELの2つにしました。
入力値検証で利用する
CellField
クラスでプロパティを指定する際に、独自の実装PropertyNavigationに切り替えました。 それに伴い、非公開のフィールドへのアクセスも可能になりました。
#28 : クラス
java.util.Calendar
に対するCellConveterを追加しました。#35 : アノテーション
@XlsHorizontalRecords
の付与可能なクラスタイプとして、java.util.Set
を追加しました。実装クラスを指定した場合は、その読み込み時には、インスタンスが設定されます。
アノテーション
@XlsVerticalRecords
も同様に修正しました。
#37 : アノテーション
@XlsVerticalRecords
でマッピングする際に、表のタイトル(ラベル)が上にある場合に対応しまいた。属性
tableLabelAbove=true
を付与すると、表のタイトルの位置が上にあると前提として処理を行います。さらに、表のタイトルから見出しがどれだけ離れているか指定する属性
right
を追加しました。XlsHorizontalRecords
の属性bottom
に対応するものです。
#50 : クラス
IsEmptyBuilder
にて、検証対象のタイプがMap, Collection, 配列の場合、要素をチェックするように機能追加しました。要素の値が全てnullまたは空と判定できた場合は、そのオブジェクトの値が空と判定します。設定用クラス
IsEmptyConfig
で、要素をチェックするかなどを変更することができます。
#53 : フィールドの入力値検証を行うためのFieldValidatorの実装である、「MaxValidator/MinValidator/RangeValidator」において、メッセージ表示用に値をフォーマットを
FieldFormatter
で行うように機能追加しました。標準では、
DefaultFieldFormatter
が設定されていますが、独自の実装に切り替えることができます。
#56 : AnnotationReaderで読み込むXMLに属性
override=true
を定義すると、JavaクラスとXMLファイルでそzれぞれに定義しているアノテーションの差分を考慮するよう機能追加しました。#59 : アノテーション
@XlsVerticalRecords/XlsSheetName
の書き込み時の処理に、読み込み用のアノテーションを取得していたため、getterメソッドにアノテーションを付与していても反映されない事象を修正しました。各種CellConverterの処理時に、アノテーション
@XlsConverter
を付与していた場合も同様の事象を修正しました。
#60 : 入力値検証時にメッセージを処する際にエスケープ文字(
\
) が正しく処理されない事象を修正しました。#61 : インタフェース
CellConverter
中の書き込み用のメソッドの使用を整理しました。@XlsMapColums
を付与したフィールドの値を処理するためのメソッドtoCellWithMap(...)
をtoCell()
に統合しました。toCell(...)
メソッドの第二引数として渡していた処理対象のオブジェクトを、Beanクラスではなく、書き込み対象の値を渡すように変更しました。CellConverterRegistry, FieldProcessorRegistryで使用していないメソッドを削除しました。
16.20. ver.0.5 - 2015-06-29¶
下記の機能を追加または改善
#21 : セルの値を取得する方法を別ライブラリ excel-cellformatter の最新版ver.0.4に対応しました。
#22 : 内部クラス定義にてクラス定義がprivateなどの非公開の場合ににも対応しました。読み込み時にインスタンスの生成に失敗する事象を改善しました。
#23 : 読み込み時に、文字列形式のセルをdoubleなどの数値型のクラスにマッピングする際にエラーが発生する事象を改善しました。
#24 : 読み込み時に、Javaクラスの表現可能な値よりも大きい数値をマッピングする際に、オーバーフローではなく、エラーとするよう動作を改善しました。
#25 : 日時型をマッピングする際に、日時の型変換用アノテーション
@XlsDateConverter
で書式を指定しないとエラーが発生する事象を改善しました。アノテーションを指定しない場合、Javaの各タイプごとにデフォルトの書式が設定されます。java.util.Date
の場合、デフォルトで yyyy-MM-dd HH:mm:ss の書式が適用されます。java.sql.Date
の場合、デフォルトで yyyy-MM-dd の書式が適用されます。java.sql.Time
の場合、デフォルトで yyyy-MM-dd HH:mm:ss の書式が適用されます。java.sql.Timestamp
の場合、デフォルトで yyyy-MM-dd HH:mm:ss.SSS の書式が適用されます。
#26 : 空セル(ブランクセル)をString型に読み込む時、型変換世のアノテーション
@XlsConverter(trim=true)
を付与してトリムを有効としている場合、空文字を設定するように改善しました。トリムが無効な場合は、nullが設定されます。
#27 : 空の項目を無視するリスト型の型変換用アノテーション
@XlsArrayConverter(ignoreEmptyItem=true)
と、トリムを有効にするアノテーション@XlsConverter(trim=true)
を組み合わせた場合、トリム処理が無視される事象を改善しました。トリム処理により空の項目となり、空の項目を無視する設定をしている場合、その項目は読み込み、書き込みの対象外となります。
#28 : アノテーション
@XlsLabelledCell(label="XXXX", optional=true)
と設定し、指定したラベルのセルが見つからない場合に、NullPointerExceptionが発生する事象を修正しました。#31 : アノテーション
@XlsLabelledCell
の属性 range、skip、headerLabelを指定した場合の処理を改善しました。属性headerLabelを指定した場合、Excelのシート上のheaderLabelで指定したセルを取得した後、labelで指定したセルを検索する際に、検索の開始位置が常に0行目から検索し直してしまい、違うセルがヒットしてしまう事象を修正しました。
属性skipとrangeを指定していると、NullPointerExceptionが発生する事象を修正しました。
#32 : アノテーション
@XlsLabelledCell
でセルの値を読み込む時に、Map<String, Position> positions
フィールドにてを定義していても、セルのアドレスが正しく取得できない事象を修正しました。#33 : アノテーション
@XlsSheet(number=2)
で読み込み/書き込みするシートをシート番号で指定している場合、例外SheetNotFoundException
がスローされる事象を修正しました。#34 : アノテーション
@XlsHorizontalRecords
レコードをマッピングする場合、見出しセルを結合していると正しく、セルの値が取得できない事象を修正しました。@XlsVerticalRecords
も同様に修正しました。#38 : 数値型をマッピングする場合、Excelの仕様に合わせて有効桁数を指定するように機能追加しました。
有効桁数は、数値の型変換用アノテーション
@XlsNumberConverter(precision=15)
で変更可能です。デフォルトでは、有効桁数はExcelの仕様と同じ15桁です。
#39 : 型変換用アノテーション
@XlsConverter(defaultValue="aaaa")
デフォルト値を指定しているが、その値自体が不正な場合、ConverterExceptionをスローしているが、その子クラスのTypeBindExceptionをスローするように修正しました。#40 : char型を書き込む時に初期値'u000'を設定し書き込むとExcel上で文字化けする事象を修正しました。
char型を書き込む時に、’u000’は、空白と判断して、空セルとして書き込むよう修正。
char型の場合、書き込む時にデフォト値が2文字以上あってもそのまま書き込まれるため、先頭の1文字のみ書き込むよう修正。
#41 : Javaクラス
java.util.Set
を書き込む場合、値をnullとしていると、NullPointerExceptionが発生する事象を修正しました。#42 : アノテーション
@XlsVerticalRecords
で属性headerAddressを指定していても反映されない事象を修正しました。#44 : アノテーション
XlsSheet(regexp="Sheet.+")
正規表現にてシート名を指定し、書き込む際の改善をしました。正規表現で指定しても、一致するシートが1つの場合は、エラーとしないで、そのシートに書き込む。
アノテーション
@XlsSheetName
を付与しているフィールドを指定し、その値に一致しなくても、正規表現に一致するシートが1つ一致すれば、そのシートに書き込む。
#45 : アノテーション
@XlsHorizontalRecords(terminal=RecordTerminal.Empty)
を設定している場合、レコードを設定していても、書き込まれない事象を修正しました。読み込み時には表の終端を判定する際に、セルの値が空であることに意味があるが、書き込む際にはテンプレート用のセルは空を設定しているため、処理が終了してしまう。そのため、書き込む時に、terminalの値がRecordTerminal.Emptyのとき強制的にRecordTerminal.Borderに補正して処理する。
#46 : アノテーション
@XlsHoritonralRecords
で書き込む場合、レコードのフィールドにアノテーション @XlsColumn(merged=true) を付与し、同じ値のセルを結合する設定をしていると、Excelファイルが壊れる事象を修正しました。#47 : アノテーション
@XlsHorizontalRecords
を付与しているフィールド型が配列型の場合、書き込むときにレコードが出力されない事象を修正しました。 同様に、@XlsVertiacalRecords
、@XlsIterateTables
の処理も修正しました。#48 : アノテ-ション
@XlsHorizontalRecords(remainedRecord=RemainedRecordOperate.Delete)
を付与し、書き込む先に余分な行を削除するときに、1回多く削除してしまう事象を修正しました。#49 : アノテーション
@XlsHorizontalRecords
を付与し、書き込む際にレコードが追加、削除されるときに、Excelの入力規則の範囲修正が正しくできない事象を修正しました。#51 : アノテーション
@XlsIterateTables
を付与し、連結した表を書き込む時に、はみ出したセルがあると、属性orverRecordOperateの処理が実行されない事象を修正しました。#52 : アノテーション
@XlsHorizontalRecords
を付与したクラスに、ライフサイクルコールバック用のアノテーション@XlsPostSave
を付与したメソッドが実行されない事象を修正しました。@XlsVerticalRecords
の場合も同様に修正しました。#54 : メッセージ中などの式言語の処理としてEL2.Xを利用する場合、実装を外部ライブラリ standalone-el に変更しました。
#57 : メッセージ中などの式言語の処理としてEL3.Xを利用している場合、formatterを利用しているとエラーが発生する事象を修正しました。
EL3.xのライブラリのバージョンを3.0から3.0.1-b08に変更しました。
アノテーション
@XlsIsEmpty
を付与してレコードが空かどうか判定するメソッドの実装を容易にするためのクラスIsEmptyBuilder
を追加しました。XMLファイルによるマッピング機能において、XMLのパースをJAXPから、JAXBへ変更しました。
16.21. ver.0.4 - 2015-04-05¶
下記の機能を追加または改善
#15 : セルの値を取得する方法を別ライブラリ excel-cellformatter を利用するよう変更。
XlsConfigのプロパティ
POICellFormatter
のクラス名をCellFormatter
に変更。この対策により、#19 も改善される
#17 : ハイパーリンクを書き込む処理を改善し、内部的に二重にリンクが設定される事象を修正。
#18 : コメントを含むシートをテンプレートして出力し、それをExcelで開くと警告メッセージが表示される事象を修正。
これは、POI-3.11の不良であり、POI-3.10~POI-3.11のみで発生する。
この事象を回避するために、 XlsMapperConfigのプロパティとして、「correctCellCommentOnSave」を追加。
16.22. ver.0.3 - 2015-01-11¶
下記の機能を追加または改善
#4 : 書き込み時にレコードの追加・削除を行った際に入力規則と名前の定義を自動的に修正する機能を追加。
XlsMapperConfigのプロパティとして、「correctNameRangeOnSave」「correctCellDataValidationOnSave」を追加。
ただし、データの入力規則を自動的に修正する機能を利用する場合は、POI-3.11が必要となります。
#13: 読み込み時のエラーメッセージの改善。型変換時エラー時にセルの値'validatedValue'を追加。
さらに、CellFieldを使用した値の検証のエラーメッセージの候補に、クラスタイプを指定できるよう改善。
16.23. ver.0.2.3 - 2015-01-01¶
下記の機能を追加または改善
16.24. ver.0.2.2 - 2014-12-01¶
下記の不良を修正。
16.25. ver.0.2.1 - 2014-11-25¶
下記の不良を修正。
16.26. ver.0.2 - 2014-11-24¶
アノテーション
@XlsIsEmpty
を追加しました。@XlsHorizontalRecords
、@XlsVertialRecords
の属性skipEmptyRecordで'true'を指定した場合、レコードが空の場合、そのレコードの読み込みをスキップします。アノテーション @XlsIsEmptyは、引数なしで、戻り値がtrueのメソッドに付与する必要がります。
MessageInterpolator
を改善し、メッセージ中に定義した変数をメッセージコードとして処理する機能を追加しました。メッセージをフォーマットする際に、引数で渡した変数用オブジェクトに存在しない変数名がメッセージに存在する場合、MessageResolverから値を取得します。
SheetBindingErrors中のフィールドエラーにアクセスするメソッドにおいて、現在の位置を考慮するように改善しました。
@XlsHorzontalRecords(remainedRecord=RemainedRecordOperate.Clear)
を指定指示に書き込んだ場合、書き込むレコードの件数が0件の場合、出力したシートがヘッダーのスタイルになる現象を修正しました。@XlsHorzontalRecords(remainedRecord=RemainedRecordOperate.Delete)
を指定指示に書き込んだ場合、書き込むレコードの件数が0件の場合、見出し行を除く行が全て削除される現象を改善しまいた。1件のみ残すよう修正しました。
16.27. ver.0.1 - 2014-10-30¶
初期リリース。