@XlsOrder
書き込み時に、@XlsHoriontalRecords
を使用して行の挿入や削除する設定している場合、フィールドの処理順序によって、Map<String, Point> positions
フィールドで座標が、ずれる場合があります。
このようなときに、@XlsOrder
の属性 value
で書き込む処理順序を指定し一定に保つことができます。
属性 value はJavaの仕様により省略が可能です。
@XlsOrder
を付与しないフィールドは、付与しているフィールドよりも後から処理が実行されます。
属性valueが同じ値を設定されているときは、 フィールド名の昇順で優先度を決めて処理されます。
1@XlsSheet(name="Users")
2public class SampleSheet {
3
4 // セルの位置情報
5 private Map<String, Point> positions;
6
7 @XlsOrder(order=1)
8 @XlsHorizontalRecords(tableLabel="ユーザ一覧", terminal=RecordTerminal.Border)
9 @XlsRecordOption(overOperation=OverOperation.Insert, remainedOperation=RemainedOperation.Delete)
10 private List<UserRecord> records;
11
12 // 属性valueは省略が可能
13 @XlsOrder(2)
14 @XlsLabelledCell(label="更新日", type=LabelledCellType.Right)
15 private Date updateTime;
16
17}
注釈
ソースコード上で定義したフィールドやメソッドの記述順は、実行時には保証されないため、@XlsOrder
で順番を指定し、処理順序を一定にできます。
@XlsOrder
を付与すると、書き込み時だけでなく読み込み時にも処理順序が一定になります。