カスタマインのExcel出力機能(やること「Excelを出力する」)では、レコードや、関連レコード一覧のレコード毎、テーブルのテーブル行毎にシートを分割して出力する事ができます。
※なお、PDF出力機能(やること「PDFを出力する」)の場合はシートが分割される代わりに、ページが改ページされる動きになります
今回はkintoneアプリストアの「おすすめ機能体験パック」と、Excel出力用のテンプレートアプリを用い、様々なシート分割出力例をご説明します。
アプリの準備
アプリとしては、「テンプレートアプリ」「Excelを出力するアプリ」の2つを準備してください。
テンプレートアプリ
これはExcel出力用のテンプレートファイルを格納するアプリです。
※フィールド名とフィールドコードは同じものを指定
Excelを出力するアプリ
「おすすめ機能体験パック」をサンプルレコードありで導入してください(導入後、別段の設定変更は不要です)。
なお、もし自身でアプリを設定したい場合は「休暇申請」アプリを次のように設定してください(カスタマイズもこのアプリに対して設定します)。
※フィールド名とフィールドコードは同じものを指定
※関連レコード一覧フィールド「過去の申請」載の設定は
参照するアプリ に このアプリを指定
表示するレコードの条件 に 社員番号=社員番号を指定
さらに絞り込む条件 に すべてのレコードを指定
表示するフィールド に 社員番号、氏名、申請日、合計取得日数、ステータスを指定
レコード毎にシートを分割する例
まず、レコード毎にシートを分割して出力する例を示します。
レコード毎にシートを分割して出力し、なおかつシート名をフィールドの値に設定したい場合は、その出力したいシートに「#$(【フィールドコード】)」という形でシート名を設定します。
今回のアプリだと、具体的な設定例としては次のようになります。
#$(氏名)
これを踏まえ、次のようなテンプレートファイルを作成し、テンプレートアプリに設定してください。
そして、次のようなカスタマイズを設定します。
カスタマイズを設定したら、一覧画面で動かしてみてください。
次のようなExcelファイルが出力できたでしょうか?
関連レコード一覧のレコード毎にシートを分割する例
次に、関連レコード一覧のレコード毎にシートを分割して出力する例を示します。
関連レコード一覧のレコード毎にシートを分割して出力し、なおかつシート名を関連レコード一覧上のフィールドの値に設定したい場合は、その出力したいシートに「#(【関連レコード一覧のフィールドコード】)$(【関連レコード一覧の設定で表示するフィールドに設定したフィールドの、フィールドコード】)」という形でシート名を設定します。
今回のアプリだと、具体的な設定例としては次のようになります。
#(過去の申請)$(申請日)
これを踏まえ、次のようなテンプレートファイルを作成し、テンプレートアプリに設定してください。
そして、次のようなカスタマイズを設定します。
カスタマイズを設定したら、詳細画面で動かしてみてください。
次のようなExcelファイルが出力できたでしょうか?
※なお下の例では「おすすめ機能体験パック」のサンプルレコードに加え、わかりやすくなるように同一社員番号でのレコードを追加しています。
なお、関連レコードのフィールド外の値もテンプレートに含めて出力したいときは、下記「関連レコード行やテーブル行毎にシート分割展開された際、展開範囲外のフィールドを出したい場合の例」節も併せてご覧ください。
テーブルのテーブル行毎にシートを分割する例
最後に、テーブルのテーブル行毎にシートを分割して出力する例を示します。
テーブルのテーブル行毎にシートを分割して出力し、なおかつシート名をテーブル上のフィールドの値に設定したい場合は、その出力したいシートに「#(【テーブルのフィールドコード】)$(【テーブル内フィールドの、フィールドコード】)」という形でシート名を設定します。
今回のアプリだと、具体的な設定例としては次のようになります。
#(申請内容)$(取得日)
これを踏まえ、次のようなテンプレートファイルを作成し、テンプレートアプリに設定してください。
そして、次のようなカスタマイズを設定します。
カスタマイズを設定したら、詳細画面で動かしてみてください。
次のようなExcelファイルが出力できたでしょうか?
※なお下の例では「おすすめ機能体験パック」のサンプルレコードに対し、わかりやすくなるようにテーブル内でのテーブル行を追加しています。
なお、テーブルフィールド外のフィールドの値もテンプレートに含めて出力したいときは、下記「関連レコード行やテーブル行毎にシート分割展開された際、展開範囲外のフィールドを出したい場合の例」節も併せてご覧ください。
関連レコード行やテーブル行毎にシート分割展開された際、展開範囲外のフィールドを出したい場合の例
カスタマイズについてはここまでで記載したものと同じになるので省略します。
テンプレートファイルの設定については、テンプレートファイルに
・シート分割して展開するシート
・展開する範囲以外のフィールド情報を持たせるシート
を作成した上で、「展開する範囲以外のフィールド情報を持たせるシート」に出力したセルを「シート分割して展開するシート」のセルから参照するように作成します。
具体的なテンプレートファイルの設定例としては、まず「展開する範囲以外のフィールド情報を持たせるシート」を次の要領で設定します。
なお上の例では「アプリ側情報」というシートに、「社員番号」〜「ステータス」のフィールド情報を持たせるように設定しています。
そして更に、「関連レコード一覧のレコード毎にシートを分割する例」ないし「テーブルのテーブル行毎にシートを分割する例」の要領でシートを設定します(※今回は「関連レコード一覧のレコード毎にシートを分割する例」の要領で設定)。
なお上の例では、「関連レコード一覧のレコード毎にシートを分割する例」に準じる形で指定しており、B2〜B7セルは「アプリ側情報」の内容を参照するように設定、B9〜B13セルは「関連レコード一覧のレコード毎にシートを分割する例」のテンプレート例で示したB2~B6セルと同様に$【フィールドコード】として設定しています。
このテンプレートファイルを元に出力を行った場合、次のように出力する事ができます。
まず、B2〜B7セルは「アプリ側情報」のシートの値を表示しています。
そして、B9~B13セルには直接値が反映されています。
おわりに
カスタマインのExcel出力を行える「やること」では、テンプレートファイルの設定により、柔軟にシートを分割して出力する事ができます。
ぜひこの記事を参考にして、シート分割を含めたExcelファイル出力をお試しください!
また、ご不明点等ございましたら、チャットにてご質問ください!













