gusuku Customine カスタマインの歩き方 Excel/PDF 出力編
2. 実例に学ぶカスタマイズ作成のポイント

2-3. 一覧画面からのExcel出力

前の記事:2-2. 詳細画面からのPDF出力

次の記事:2-4. Excel/PDF出力で同じレコードのデータを複数の形式で出力


この記事では、Excel/PDF出力として一覧画面からのExcel出力を行います。

※注:PDF出力も同様の要領で行う事ができます。


今回作成するカスタマイズの例

一覧画面からの出力を行う際も、これまでに学んだ「カスタマイズを作成する前におこなうこと」や「カスタマイズ作成の主な流れ」の基本的な手順は変わりありません。

出力する際に必要なテンプレートファイルの記述方法を理解していただければ、汎用的に活用いただけます。

※参考:詳細画面からのPDF出力


今回は、「商品リスト」アプリに登録しているレコード情報を元に、一覧画面に設置したボタンを押下した時にExcelファイルを出力します。

弊社サポートサイトにて配布しております、「sample_商品リストテンプレート」を使って出力を行っていただきますと、以下のような形で出力されます。


アプリの準備

2つ、アプリが必要となりますので準備します。


アプリは自分で準備する事もできますが、次のページからアプリテンプレートをダウンロードして登録する事もできます。

カスタマインの歩き方 カスタマイズお試し用ファイルダウンロード


「商品リスト」アプリ

※フィールド名とフィールドコードは同じものを指定

フィールド名

フィールドタイプ

備考

型番

文字列(1行)

値の重複を禁止する

商品名

文字列(1行)


価格

数値


商品画像合計金額

添付ファイル


特記事項

文字列(複数行)



「出力テンプレート」アプリ

※フィールド名とフィールドコードは同じものを指定

フィールド名

フィールドタイプ

備考

アプリ名

文字列(1行)


テンプレート名称

文字列(1行)


テンプレートファイル

添付ファイル



テンプレートファイル

Excel/PDF出力をするカスタマイズについては、カスタマイズを作成する前に、テンプレートファイルを作成して、「出力テンプレート」アプリに登録を行います。


こちらについては、この記事の中で順に進めて作成していただくのが理解しやすくおすすめですが、次のページからテンプレートファイルをダウンロードして作成に代える事もできます(ただし、最終形のファイルのみ準備されています)。

カスタマインの歩き方 カスタマイズお試し用ファイルダウンロード


テンプレートファイルを作成

「商品リスト」アプリの一覧画面から、商品リスト一覧を出力するためのテンプレートファイルを作成します。(参照:「テンプレートファイル作成時のポイント」)

「商品リスト」アプリで出力させるフィールドコード(商品画像、型番、商品名、価格、特記事項)を確認し、テンプレートファイルに設定してみましょう。


商品リスト一覧で選択した複数レコードを出力するためには、レコード数分繰り返して出力を行う$FOREACH および $ENDを使用します。

詳細画面からのPDF出力でテーブル行数分を出力する際には$FOREACH(フィールドコード) の記述でしたが、パラメーター「データレコード」で出力するレコードを指定する場合は(フィールドコード)部分は不要です。


gusuku コマンド

説明

$FOREACH および $END

$FOREACH を記述した行から、$END を記述した行まで、「データレコード」で指定されたレコード数分ループし出力します

$IMG(フィールドコード)

PNG / JPEG / GIF / BMP 形式の画像が添付されている場合、そのカラムに画像を出力します。

※gusukuコマンド入力の$や()は必ず半角で入力してください。


テンプレート記述例

商品画像フィールドに登録しているファイルを出力するための記述は、$IMG(商品画像)(0)と指定します。

※$IMG(商品画像)(0)の「(0)」の部分は、商品画像フィールドに登録している1つ目のファイルを示しています。


テンプレートファイルを作成したら、「出力テンプレート」アプリに登録しておきます。


添付ファイルフィールドに複数のファイルがある場合

 

kintone の添付ファイルフィールドには複数のファイルを登録することができます。

上記では登録されている1つ目のファイルを出力する例を紹介しましたが、同様に2つ目以降のファイルを出力する事もできます。


・2つ目と3つ目の画像のみを出力させたい場合

 $IMG(フィールドコード)(1) 

 $IMG(フィールドコード)(2) 


また、登録されているファイルを全て出力したい場合は使用すべきgusukuコマンドは異なります。


・登録しているファイルを全て出力させたい場合

$FOREACH(フィールドコード) および $ENDを使用して、登録しているファイル数の分、処理を繰り返して出力します。

※$FOREACH(フィールドコード) および $ENDを記述している行は出力される際に削除されますので、$FOREACH(フィールドコード) および $ENDの隣には記述しないようにしてください。



カスタマイズ作成

次に、Excel出力をするためのカスタマイズを作成します。


まず、一覧画面を表示した際にレコードを選択するためのチェックボックスと出力ボタンを設置します。


出力ボタン押下した際にやること「キーを指定してレコードを取得する」を使用して、先ほど作成した商品リストテンプレートを登録したレコードを取得しておきます。

また、「一覧で選択されたレコードを取得する」を使用して、チェックボックスで選択したレコードを取得します。


Excel出力を行うために、「Excelを出力する」を使用します。この「やること」では取得したレコード情報をもとにExcelファイルを生成・出力します。


やること「Excelを出力する」で設定するパラメーターは、やること「PDFを出力する」と変わりありませんので、まずは設定してみましょう。

※参考:詳細画面からのPDF出力 の「カスタマイズ作成」節


一覧で選択したレコードが出力されたでしょうか。


出力されない場合は、次項の「間違ったカスタマイズ」を見てみましょう。


間違ったカスタマイズ

上のカスタマイズですと「データレコード」を選択していないので、一覧で画面に表示されているレコードが出力されてしまいます。今回の場合は、一覧で選択したレコードを出力したいので、「データレコード」には「一覧で選択されたレコードを取得する」のアクション番号を指定する必要があります。


正しいカスタマイズ

「データレコード」を選択すると、一覧で選択したレコードが出力できます。


以上で商品リスト一覧のExcel出力をするカスタマイズは完成です。

一覧で選択したレコードの内容は正しく出力されたでしょうか?


もし意図した通りに出力されない場合は、「sample_商品リストテンプレート」の記述を確認してみましょう。このテンプレートファイルを利用して、出力内容を確認するためには、「出力テンプレート」アプリに登録しているテンプレートファイルを変更して出力をお試しください。


一覧画面からレコード別シート出力

では次に、一覧で選択したレコードの商品ごとの詳細をシートに分けたテンプレートファイルを作成します。

事前にご用意しました「sample_商品リストテンプレート(詳細)」で出力を行いますと以下のような形で出力されます。


まず、先ほど使用した「商品リストテンプレート」にシートを追加し、シートに出力したい内容(型番、商品名、価格、商品画像、特記事項の各フィールド)を記述します。


(テンプレート記述例)

使用するgusukuコマンドは先ほど使用したものと変わりありません。


一覧で選択したレコード数分の詳細をシート毎に出力するためには、テンプレートのシート名先頭に「#」を付けます。

このように記述することで、自動的にレコードの数だけシートが複製されます。

(テンプレート)

(出力後)

「#商品詳細」シートも含めたテンプレートファイルを「出力テンプレート」アプリに登録し、先ほど作成したカスタマイズを利用して、再度Excel出力してみましょう。

1シート目には商品リスト、2シート目以降に商品ごとの詳細シートが出力されたかを確認してみてください。


Job Runner を使用した出力

Excel/PDF出力は kintone アプリのカスタマイズだけでなくJob Runner(定期実行・Webhook) でも行うことができます。Job Runner における処理でも基本的な手順は変わりません。ただし、出力するタイミングや出力先によっては、Job Runnerでしかできないこともありますので、用途に応じて使い分ける必要があります。


※本記事では Job Runner を利用したカスタマイズは割愛しますが、例として以下のような要件は Job Runnner でのみ、実現が可能です。


  1. 定期実行を使用して夜間に自動で一括出力し、各レコードに出力ファイルを添付する

  2. Webhook を使用することで、Excel/PDF をリアルタイムに生成せず、生成が終わった後に出力ファイルを添付する

※大量のレコードをもとにした Excel/PDF 生成は時間がかかる可能性があります。「kintone アプリのカスタマイズ」を使用したカスタマイズだと生成が終わるまでユーザーが画面操作を行えなくなります。これを避けるための方法として、「kintone アプリの Webhook」を使用してJob Runner側でのファイル出力とする方式とすることで、バックグラウンドで処理を行うことが可能となります。


参考:出力時間を待ちたくない方へ!特定のステータスに変更したとき、Excel/PDF出力を行う


おわりに

この記事では、Excel/PDF出力の例として、一覧画面からのExcel出力例をご説明しました。

ぜひExcel/PDF出力についても、色々と試してみてくださいね。


ご不明な点がございましたら、チャットでお問い合わせください。

ドキュメントサポートページも、ぜひご活用ください!


gusuku Customine カスタマインの歩き方 Excel/PDF 出力編
2. 実例に学ぶカスタマイズ作成のポイント

2-3. 一覧画面からのExcel出力

前の記事:2-2. 詳細画面からのPDF出力

次の記事:2-4. Excel/PDF出力で同じレコードのデータを複数の形式で出力