EXcel データ出力ガイドブック
第 1.0 版 平成 30 年 9 月 1 日制定
株式会社
■変更履歴
版数 変更日 変更内容
目次
1 はじめに ... 1 1.1 本書の位置付 ... 1 2 Excel テンプレートの作成 ... 2 2.1 キーファイルの準備 ... 2 2.2 テンプレートエリアの宣言 ... 3 2.3 テンプレートに記述する内容 ... 4 2.3.1 利用可能なキー一覧に記載されているキーについて ... 4 2.3.1.1 データ一覧表示画面とデータ詳細表示画面の両方で使用可能なキー... 4 2.3.1.2 データ一覧表示画面でのみ利用可能なキー ... 4 2.3.2 動的出力項目の定義 ... 5 2.3.3 コマンドの宣言 ... 6 2.4 帳票出力可能なアプリ部品の動的出力項目について ... 12 2.5 Excel 帳票テンプレートの設定 ... 161
1 はじめに
1.1 本書の位置付
想定読者:アプリ作成者
本書は、イット builder で Excel の帳票を出力するために必要な Excel 帳票テンプレート(拡張子: xlsx、xls)の作成方法について示す。Excel 帳票テンプレートは Excel を使用して作成する。を利 用して作成する。
2
2 Excel テンプレートの作成
2.1 キーファイルの準備
・帳票作成に使用するアプリで帳票作成を行うデータベースを選択した「データ一覧表示画面」ま たは「データ詳細表示画面」を追加する。追加方法についてはアプリ設定ガイドラインをご確認く ださい。 ・帳票出力機能の利用を[利用する]に変更する。 ※画像はデータ一覧表示画面の例ですが、データ詳細表示画面でも行うことは同じです。 ・[帳票出力]をクリックする。 ・[利用可能なキー一覧]をクリックし、CSV ファイルをダウンロードする。 [利用する]をクリックする。 [帳票出力]をクリックする。 [利用可能なキー一覧]をクリックする。3
2.2 テンプレートエリアの宣言
・Excel のセルコメントに XLS Area を宣言(【テンプレートエリアの記述例】参照)して、動的出 力項目の有効範囲を設定する。 ・シートごとに指定する。 ・コメントを挿入したセルから lastCell 属性で指定したセルまでが有効範囲となる。 【テンプレートエリアの記述例】 jx:area(lastCell="【有効範囲(A1 形式)】") 例:x:area(lastCell="C8") 有効範囲 有効範囲に設定されているのは "C8"までなのでそれ以降のセルに は出力されません。 コメントを挿入したセルから lastCell 属性で指定したセルまで が有効範囲となります。 指定範囲外のセルには対象データ は出力されません。4
2.3 テンプレートに記述する内容
2.3.1 利用可能なキー一覧に記載されているキーについて
キーにはデータ一覧表示画面でのみ利用可能なものと、データ一覧表示画面とデータ詳細表示画面 の両方で使用可能なものがあります。 2.3.1.1 データ一覧表示画面とデータ詳細表示画面の両方で使用可能なキー 「Field_D001」のように「Field_」で始まるキーが、データ一覧表示画面とデータ詳細表示画面の両 方で使用可能なキーです。各キーがどのデータと対応するかは、データベースの設定画面で確認す ることができます。データ項目画面を表示し、データ項目の ID を確認してください。 データ項目の左上に記載されている文字がデータ項目の ID です。上図では部署名の ID は D001、社員番号は D002、氏名は D003、役職は D004 となっています。 キーの「Field_」に続く文字はデータ項目の ID と同じです。上図データベースの部署名は Field_D001 と対応し、氏名は Field_D003 と対応します。 「3.1 キーファイルの準備」でダウンロードした CSV には、データ項目の並び順に関係なくデー タ ID の小さいものから記述されています。 2.3.1.2 データ一覧表示画面でのみ利用可能なキー 「Field_」以外の文字から始まるキーがデータ一覧表示画面でのみ利用可能です。 出力したデータ列の総数を表す「TotalNum」というキーと、検索機能を利用する設定には実際に検 索で使用した語句を表示する「SearchFieldVal_****」(*は検索条件項目に設定したデータ項目の ID) というキーの 2 種類があります。 データ項目の ID5
2.3.2 動的出力項目の定義
・${...} という形式の式言語で、変数の埋め込みなどを宣言する。 【例 1 受付データ(詳細項目)】 ${Field_D001} ・テンプレートに書式(日付や金額)を設定する場合の変数定義 日付 ${new("java.util.Date",Field_D006)} 合計金額 ${new("java.lang.Integer",Field_D007)} 日付 平成 30 年 8 月 2 日 合計金額¥27,054,000
6
2.3.3 コマンドの宣言
・Excel のセルコメントにコマンドを宣言して、出力の操作をする。 ・Echo コマンド 【概要】コマンドで指定されたコレクションを繰り返し処理する。 (http://jxls.sourceforge.net/reference/each_command.html) 【記述例】jx:each(items="..." var="..." lastCell="..." direction="DOWN") 【主な属性】 ・Items 反復するコレクションのコンテキスト変数(プログラム側から渡す変数名)を指定する。 ・Var Echo コマンドの有効範囲内で使用するコレクション要素の変数名を指定する。 ・lastCell Echo コマンドの有効範囲を指定する。 注意:出力対象の最終セルではなくヘッダーと同じ行のセルを設定 ・direction[省略可] "DOWN" または "RIGHT" を指定することによって繰り返す方法を決定する。 DOWN は行方向に、RIGHT は列方向に繰り返す。(デフォルトは"DOWN")
7
【例1_一覧<行方向への繰り返し>】 対象データが挿入されます。(A4 セルから) セルコメントに記述する Echo コマンド
:jx:each(items="detailList" var="detail" lastCell="H4") 出力対象セルに記述する Echo コマンド
8
【例 2_一覧<列方向への繰り返し>】対象データが挿入されます。(B3 セルから)
セルコメントに記述する Echo コマンド:jx:each(items="detailList" var="detail" direction "RIGHT" lastCell="B6")
9 【例 3_一覧<枠固定パターン>】対象データが上書きされます。A4 セルから H10 セルまで セルコメントに記述する動的出力項目の有効範囲:jx:area(lastCell="H10") 注意:ここでの lastCell は一覧に出力させたい対象の最終列、最終行のセル№ 枠固定パターンの時に出力対象セルに記述する Echo コマンドはデータ変数である 「detailList(データ一覧)」の値をポインタを指定して直接参照していただくかたちになります。 参照方法はデータ変数[レコードの要素番号(0 始まり)].フィールド名となります。
例:${detailList[0].Field_D001}、${detailList[0].Field_D008}
出力対象セルに記述する Echo コマンド:${detailList[6].Field_D001}、${detailList[6].Field_D008} レコードの要素番号は 0,1,2 と最終レコードまで順番に指定していきます
10
【例 4_詳細画面での関連データ<行方向への繰り返し>】 対象データが挿入されます。(A4 セルから)
セルコメントに記述する Echo コマンド:jx:each(items="RT1" var="detail" lastCell="C4") 出力対象セルに記述する Echo コマンド:${detail.RT1_Field_D001}
11 【例 5_詳細画面での関連データ<枠固定パターン>】対象データが上書きされます。 対象データ が上書きされます。(A4 セル~C13 セルまで) セルコメントに記述する動的出力項目の有効範囲:jx:area(lastCell="C15") 注意:ここでの lastCell は一覧に出力させたい対象の最終列、最終行のセル№ 枠固定パターンの時に出力対象セルに記述する Echo コマンドはデータ変数である 「RTx(関連データ)」の値をポインタを指定して直接参照していただくかたちになります。 参照方法はデータ変数[レコードの要素番号(0 始まり)].フィールド名となります。 例::${RT1[0].RT1_Field_D001}、${RT1[0].RT1_Field_D003} 出力対象セルに記述する Echo コマンド:${RT1[11].RT1_Field_D001}、${RT1[11].RT1_Field_D003} レコードの要素番号は 0,1,2 と最終レコードまで順番に指定していきます 以上で Excel 帳票テンプレートを作成することができます。
12
2.4 帳票出力可能なアプリ部品の動的出力項目について
・<データ一覧表示> 動的出力項目 テンプレート定義する式言語 備考 検索条件(検索機能の利用が「利用する」の場合のみ出力可能とする) 検索条件値 ${SearchFieldVal_【データ項目 ID】} 以下の項目種別の 場合に使用。 ・テキスト(1 行) ・テキスト(複数行) ・択一選択 ・複数選択 ・ファイル ・自動連番 検索条件値 (開始終了) ${SearchFieldVal_【データ項目 ID】_START} ${SearchFieldVal_【データ項目 ID】_END} 以下の項目種別の 場合に使用。 ・数値 ・日付 検索条件値 (選択状況) ${get("SearchFieldVal_【データ項目 ID】_【選択肢名】")} 検索方式 ${SearchFieldType_【データ項目 ID】} 以下の項目種別の 場合に使用。 ・テキスト 単一行 形式 ・テキスト 複数行 形式 ・ファイル ・自動連番 NULL 値 検索の有無${SearchFieldNull_【データ項目 ID】} NULL 値検索をする 場合、当該検索条件 の検索条件値およ び検索方式は常に 空白が出力される。
13
データ件数
データ件数 ${TotalNum}
受付データ(一覧項目)
※Echo コマンドを使用する。(items 属性:「detailList」) 一覧表示項目 ${【Echo#var】.Field_【データ項目 ID】} 例:${detail.Field_D001} 以下の項目種別 の場合に使用。 ・テキスト (1 行) ・テキスト (複数行) ・数値 ・日付 ・択一選択 ・複数選択 ・ファイル ・自動連番 一覧表示項目 (選択状況) ${【Echo#var】.get("Field_【データ項目 ID】_【選択肢名】")} 以下の項目種別 の場合に使用。 ・択一選択 ・複数選択
14 ・<データ詳細表示 および 帳票生成> 動的出力項目 テンプレート定義する式言語 備考 受付データ(詳細項目) 入力項目 ${Field_【データ項目 ID】} 以下の項目 種別の場合 に使用。 ・テキスト (1 行) ・テキスト (複数行) ・択一選択 ・複数選択 ・ファイル ・自動連番 選択項目 (選択されてい るかどうか) ${get("Field_【データ項目 ID】_【選択肢名】")} 以下の項目 種別の場合 に使用。 ・数値 ・日付
15 関連データ(一覧項目) ※Echo コマンドを使用する。(items 属性:「RT【関連データ連番】」) 関連データ入力 項目 ${【Echo#var】.RT【関連データ連番】_Field_【データ項目 ID】} 以下の項目 種別の場合 に使用可能。 ・テキスト (1 行) ・テキスト (複数行) ・択一選択 ・複数選択 ・ファイル ・自動連番 関連データ選択 項目(選択され ているかどう か) ${【Echo#var】.get("RT【関連データ連番】_Field_【データ項目 ID】_【選択肢名】")} 以下の項目 種別の場合 に使用可能。 ・択一選択 ・複数選択
16