EXcel データ出力ガイドブック 第 1.0 版平成 30 年 9 月 1 日制定 株式会社中電シーティーアイ
変更履歴 版数変更日変更内容 1.0 2018/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 帳票テンプレートの設定... 16
1 はじめに 1.1 本書の位置付 想定読者 : アプリ作成者本書は イット builder で Excel の帳票を出力するために必要な Excel 帳票テンプレート ( 拡張子 : xlsx xls) の作成方法について示す Excel 帳票テンプレートは Excel を使用して作成する を利用して作成する Excel 97-2003 ブック (xls) 形式 Excel 2007- ブック (xlsx) 形式のファイルが使用可能 1
2 Excel テンプレートの作成 2.1 キーファイルの準備 帳票作成に使用するアプリで帳票作成を行うデータベースを選択した データ一覧表示画面 ま たは データ詳細表示画面 を追加する 追加方法についてはアプリ設定ガイドラインをご確認く ださい 帳票出力機能の利用を [ 利用する ] に変更する [ 利用する ] をクリックする 画像はデータ一覧表示画面の例ですが データ詳細表示画面でも行うことは同じです [ 帳票出力 ] をクリックする [ 帳票出力 ] をクリックする [ 利用可能なキー一覧 ] をクリックし CSV ファイルをダウンロードする [ 利用可能なキー一覧 ] をクリックする 2
2.2 テンプレートエリアの宣言 Excel のセルコメントに XLS Area を宣言 ( テンプレートエリアの記述例 参照) して 動的出力項目の有効範囲を設定する シートごとに指定する コメントを挿入したセルから lastcell 属性で指定したセルまでが有効範囲となる テンプレートエリアの記述例 jx:area(lastcell=" 有効範囲 (A1 形式 ) ") 例 :x:area(lastcell="c8") 有効範囲 有効範囲に設定されているのは "C8" までなのでそれ以降のセルには出力されません コメントを挿入したセルから lastcell 属性で指定したセルまでが有効範囲となります 指定範囲外のセルには対象データは出力されません 3
2.3 テンプレートに記述する内容 2.3.1 利用可能なキー一覧に記載されているキーについて キーにはデータ一覧表示画面でのみ利用可能なものと データ一覧表示画面とデータ詳細表示画面 の両方で使用可能なものがあります 2.3.1.1 データ一覧表示画面とデータ詳細表示画面の両方で使用可能なキー Field_D001 のように Field_ で始まるキーが データ一覧表示画面とデータ詳細表示画面の両方で使用可能なキーです 各キーがどのデータと対応するかは データベースの設定画面で確認することができます データ項目画面を表示し データ項目の ID を確認してください データ項目の 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 種類があります 4
2.3.2 動的出力項目の定義 ${...} という形式の式言語で 変数の埋め込みなどを宣言する 例 1 受付データ ( 詳細項目 ) ${Field_D001} テンプレートに書式 ( 日付や金額 ) を設定する場合の変数定義 日付 合計金額 ${new("java.util.date",field_d006)} ${new("java.lang.integer",field_d007)} 日付 平成 30 年 8 月 2 日 合計金額 27,054,000 5
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") 6
例 1_ 一覧 < 行方向への繰り返し> 対象データが挿入されます (A4 セルから ) セルコメントに記述する Echo コマンド :jx:each(items="detaillist" var="detail" lastcell="h4") 出力対象セルに記述する Echo コマンド :${detail.field_d001} 7
例 2_ 一覧 < 列方向への繰り返し> 対象データが挿入されます (B3 セルから ) セルコメントに記述する Echo コマンド :jx:each(items="detaillist" var="detail" direction "RIGHT" lastcell="b6") 出力対象セルに記述する Echo コマンド :${detail.field_d001} 8
例 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 と最終レコードまで順番に指定していきます 9
例 4_ 詳細画面での関連データ< 行方向への繰り返し> 対象データが挿入されます (A4 セルから ) セルコメントに記述する Echo コマンド :jx:each(items="rt1" var="detail" lastcell="c4") 出力対象セルに記述する Echo コマンド :${detail.rt1_field_d001} 10
例 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 帳票テンプレートを作成することができます 11
2.4 帳票出力可能なアプリ部品の動的出力項目について <データ一覧表示 > 動的出力項目 テンプレート定義する式言語 備考 検索条件 ( 検索機能の利用が 利用する の場合のみ出力可能とする ) 検索条件値 ${SearchFieldVal_ データ項目 ID } 以下の項目種別の場合に使用 テキスト(1 行 ) テキスト( 複数行 ) 択一選択 複数選択 ファイル 自動連番 検索条件値 ( 開始終了 ) 検索条件値 ( 選択状況 ) ${SearchFieldVal_ データ項目 ID _START} ${SearchFieldVal_ データ項目 ID _END} ${get("searchfieldval_ データ項目 ID _ 選択肢名 ")} 以下の項目種別の場合に使用 数値 日付 検索方式 ${SearchFieldType_ データ項目 ID } 以下の項目種別の場合に使用 テキスト単一行形式 テキスト複数行形式 ファイル 自動連番 NULL 値 検索の有無 ${SearchFieldNull_ データ項目 ID } 12 NULL 値検索をする場合 当該検索条件の検索条件値および検索方式は常に空白が出力される
データ件数 データ件数 ${TotalNum} 受付データ ( 一覧項目 ) Echo コマンドを使用する (items 属性 : detaillist ) 一覧表示項目 ${ Echo#var.Field_ データ項目 ID } 例 :${detail.field_d001} 以下の項目種別 の場合に使用 テキスト (1 行 ) テキスト ( 複数行 ) 数値 日付 択一選択 複数選択 ファイル 自動連番 一覧表示項目 ( 選択状況 ) ${ Echo#var.get("Field_ データ項目 ID _ 選択肢名 ")} 以下の項目種別 の場合に使用 択一選択 複数選択 13
<データ詳細表示および帳票生成 > 動的出力項目 テンプレート定義する式言語 備考 受付データ ( 詳細項目 ) 入力項目 ${Field_ データ項目 ID } 以下の項目種別の場合に使用 テキスト (1 行 ) テキスト ( 複数行 ) 択一選択 複数選択 ファイル 自動連番 選択項目 ( 選択されてい るかどうか ) ${get("field_ データ項目 ID _ 選択肢名 ")} 以下の項目種別の場合に使用 数値 日付 14
関連データ ( 一覧項目 ) Echo コマンドを使用する (items 属性 : RT 関連データ連番 ) 関連データ入力 項目 ${ Echo#var.RT 関連データ連番 _Field_ データ項目 ID } 以下の項目 種別の場合 関連データ選択項目 ( 選択されているかどうか ) ${ Echo#var.get("RT 関連データ連番 _Field_ データ項目 ID _ 選択肢名 ")} に使用可能 テキスト (1 行 ) テキスト ( 複数行 ) 択一選択 複数選択 ファイル 自動連番以下の項目種別の場合に使用可能 択一選択 複数選択 15
2.5 Excel 帳票テンプレートの設定 2.1 キーファイルの準備 で作成した データ一覧表示画面 または データ詳細表示画面 の設定画面を表示する Excel 出力機能の利用を [ 利用する ] に変更する ( 2.1 キーファイルの準備 参照 ) [Excel 出力 ] をクリックする ( 2.1 キーファイルの準備 参照 ) [ 参照 ] をクリックし 2 Excel テンプレートの作成 で作成した Excel 帳票テンプレートを指 定する [ 変更 ] をクリックする [ 参照 ] をクリックする [ 変更 ] をクリックする 16