Excel/PDF出力では、Excelファイル形式のテンプレートをもとに、kintoneのレコードデータを当てはめて、ExcelまたはPDFファイルを作成します。
予めの準備として、以下のものをご用意ください。
テンプレートファイルは、Excel形式で自由に作成することが可能です。
サンプルのアプリやテンプレートをダウンロードして、すぐ試すことのできるスターターキットもご用意しておりますので、合わせてご確認ください。
テンプレートファイルのシート名は、任意のシート名をつけることが可能です。
gusukuコマンドを使用して、フィールドの値をシート名に利用することも可能です。使用できるコマンドは以下になります。
$(フィールドコード) | 指定したフィールドコードを出力します。 |
$("文字列") | 指定した文字列をそのまま出力します。 |
シート名の先頭に「#」を付けると、一覧画面などから複数のレコード数分のシートを出力することが可能です。
#任意のシート名 | 選択したレコード数分のシートが追加されます。 |
ほとんどgusukuコマンドは、フィールドコードの指定とともに利用します。フィールドコードは、日本語記述でも英語記述でもそのまま記述することが可能です。
注意すべき点
gusukuコマンド | 説明 |
---|---|
$(フィールドコード) | 指定したフィールドコードを出力します。 |
$STR(フィールドコード) | 指定したフィールドコードを文字列として扱い出力します。 |
$NUM(フィールドコード) | 指定したフィールドコードを数値として扱い出力します。 |
$DATE(フィールドコード) | 指定したフィールドコードを日付として扱い出力します。 デフォルトではJSTのタイムゾーンで処理されます。 タイムゾーンを指定する場合には $DATE,UTC(フィールドコード) とタイムゾーン名を指定するか、 $DATE,GMT+1:00(フィールドコード)とオフセットで指定します。 |
$("文字列") | 指定した文字列をそのまま出力します。 |
メタデータフィールドはいずれのシートでも利用可能です。
メタデータフィールド | 説明 |
---|---|
$($gusuku.meta.loginuser.code) | 帳票を出力したkintoneユーザのログイン名を出力します(Job Runner版では非対応です)。 |
$($gusuku.meta.loginuser.name) | 帳票を出力したkintoneユーザの表示名を出力します(Job Runner版では非対応です)。 |
$($gusuku.meta.loginuser.email) | 帳票を出力したkintoneユーザのメールアドレスを出力します(Job Runner版では非対応です)。 |
$DATE($gusuku.meta.timestamp) | 帳票を出力した日時を出力します。セルの書式設定でお好みの日付表記に変更してください。 |
$IFはセルの先頭でのみ動作します。そのため、他のgusukuコマンドと結合させて「$(a)$IF(…)」のような形で指定することはできません。
gusukuコマンド | 説明 |
---|---|
$IF,真ラベル,偽ラベル(フィールドコード) | フィールドコードで指定した値が"true"の文字列であれば「真ラベル」に、それ以外なら「偽ラベル」に書かれた文字列に置換します。ture/falseを別の表記方法で出力したい場合に便利です。 |
$IF(フィールドコードA)請求あり$DATE(日付)請求はありません | フィールドコードAで指定した文字列が「請求あり」の場合、日付フィールドの日付を出力し、それ以外なら「請求はありません」と出力されます。 |
$IF(フィールドコードA)$("請求あり")$("請求があります")$("請求はありません") | フィールドコードAで指定した文字列が「請求あり」の場合、「請求があります」と出力し、それ以外なら「請求はありません」と出力されます。 上の例と似ていますが、「条件の値」「一致した時の値」「一致しなかった時の値」のうち2つ以上を続けて固定文字列にしたい場合、$("~~")形式にする必要があります。 |
gusukuコマンド | 説明 |
---|---|
$FOREACH および $END | $FOREACHを記述した行から、$ENDを記述した行までを、選択されたレコード数分ループします。 ループの中では、各レコードのフィールドコードを指定したgusukuコマンドを記述することが可能です。 |
gusukuコマンド | 説明 |
---|---|
$FOREACH(フィールドコード) および $END |
$FOREACHを記述した行から、$ENDを記述した行までをループします。 フィールドコードには、「テーブル」「関連レコード一覧」「添付ファイル」「文字列(複数行)」のフィールドコードを指定することが可能です。 ループの中ではテーブル内や関連レコードの参照しているアプリのフィールドコードを指定したgusukuコマンドや、後述の$または$IMGを指定することが可能です。 |
$IMG | $FOREACHで添付ファイルのフィールドコードを指定した場合、ループの中に記述することが可能です。 PNG/JPEG/GIF/BMP形式の画像が添付されている場合、そのカラムに出力されます(画像本来のサイズを超えて拡大はしません)。 |
$EXTIMG | $FOREACHで添付ファイルのフィールドコードを指定した場合、ループの中に記述することが可能です。 $IMGコマンド同様画像を出力しますが、こちらは画像本来のサイズを超えてカラムに合わせて拡大します。添付画像のサイズによっては、出力時に非常に荒い画像になりますのでご注意ください。 |
$(contentType) $(fileKey) $(name) $(size) |
$FOREACHで添付ファイルのフィールドコードを指定した場合、ループの中に記述することが可能です。 添付ファイルの各情報を出力することが可能です。 |
$ | $FOREACHで文字列(複数行)のフィールドコードを指定した場合、ループの中に記述することが可能です。 指定のフィールドコードを改行で区切った1行の文字列が出力されます。 |
FOREACHを使って、一部分だけ取り出して出力することが可能です。この機能をスライスと言います。
例: 1件目から10件目まで出力する。開始が0からであることに注意してください。
$FOREACH(フィールドコード)(0..9)
「..」の前後の数字は、省略することが可能で、省略すると「全て」の意味になります。
「5..」と指定すると、6行目から後ろ全てという指定になります。「..5」と指定すると、最初の6行という指定になります。
また、改行を含む文字列の場合、1行1要素として指定可能です。
「添付ファイル」や「文字列(複数行)」などのフィールドは、FOREACHでループを記述する代わりに数値を直接指定することも可能です。
と指定すると、複数行フィールド名の値を改行で区切った1行目を出力することが可能です。
※グループ選択フィールド、ユーザー選択フィールドも同様となります。
組織選択フィールドを用いて選択された組織名を出力したい場合、以下のように記述します。「(name)」を記述しない場合にはコードが出力されます。
複数ある場合は数字の部分を増やしつつ、想定される個数を記述してください。
PDF出力時には、フォントをはじめいくつかの制限事項があります。
詳細は「PDF出力時の制限事項」をご確認ください。
テンプレート内に配列数式がある場合、通常の数式に置き換わります。
関連レコード一覧は500レコードまで出力可能です。501レコード以上は出力できません。
Microsoft Excel自体の制限 として、シートに含められる最大行数は1048576行(約100万行)です。100万行を超えるような大量のレコードを$FOREACHで展開すると、この制限によりエラーが発生します。
$FOREACH~$END内のセルにつけられたコメントは、展開後に削除されます。