Excel帳票プラグイン リファレンスマニュアル

  2017-06-15


プラグイン / Excel帳票プラグイン

クイックスタートガイド

以下のルールに従って、テンプレートファイルとなるxlsx形式のファイルを作成します。

  • テンプレートファイルはxlsx形式で作成してください
  • 選択したレコードを一覧するシート名に「一覧」、各レコードの詳細には「$詳細」というシート名を付けます。
  • 置換したいフィールドコードは $(フィールドコード)と指定します。
  • 各セルの書式設定は常に有効になります。色指定などと合わせて、テンプレートファイルを作成することが可能です。

シートの仕様

テンプレートファイルのシートは、シート名を設定することで「レコード一覧」と「レコード詳細」を同時に設定することが出来ます。一覧と詳細のシートは、何れか一つ、もしくは両方を同時にテンプレートに含めることが可能です。

以下の名前以外が付いたシートは、そのまま加工せずに出力されます。

シート名に設定できる項目

シート名 説明
一覧 選択したレコードの一覧を表示するシートになります。
$詳細 選択したレコードの詳細を表示するシートになります。選択したレコード数分シートが追加されます。

置換マクロの仕様

ほとんど置換マクロは、フィールドコードの指定とともに利用します。フィールドコードは、日本語記述でも英語記述でもそのまま記述することが可能です。

注意すべき点

  • 置換できなかった置換マクロは、空白が出力されます。
  • 確認できるエラーが発生した場合、エラーを報告するシートが追加されます。

置換マクロの文字列結合について

「1つのセルには1種類の置換マクロを記述する必要がある」という制限は2016/08/23リリースにて撤廃されました。ただし、以下のルールに従ってください。

  • 1つのセルに「$(year)年」「$(year)年$(month)月$(day)日」「$(sei)$(mei)様」などと記述可能です。
  • 1個めのコマンドは有効です。有効な例:「$STR(a)$(b)」「$IF,真,真偽(フィールドA)$(フィールドB)」も有効ですが$IFの判定はフィールドAに対して行われます。
  • 数値演算ではなく、全て文字列として扱われます。「$NUM(a)$(b)」は有効ですが、セルには文字列として格納されます。
  • 「西暦$(year)」という表記は利用できません。代わりに文字列を直接出力するマクロを利用し、「$(“西暦”)$(year)」という形で記述してください。
  • 「$STR(a) $STR(b)」のように間に空白スペースが含まれる場合、空白スペースも出力されます。

置換マクロ一覧

置換マクロ 説明
$(フィールドコード) 指定したフィールドコードを出力します。
$STR(フィールドコード) 指定したフィールドコードを文字列として扱い出力します。
$NUM(フィールドコード) 指定したフィールドコードを数値として扱い出力します。
$DATE(フィールドコード) 指定したフィールドコードを日付として扱い出力します。
デフォルトではJSTのタイムゾーンで処理されます。
タイムゾーンを指定する場合には $DATE,UTC(フィールドコード) とタイムゾーン名を指定するか、
$DATE,GMT+1:00(フィールドコード)とオフセットで指定します。
$("文字列") 指定した文字列をそのまま出力します。

メタデータマクロ一覧

メタデータマクロは一覧及び詳細のいずれのシートでも利用可能です。

メタデータマクロ 説明
$($gusuku.meta.loginuser.code) 帳票を出力したkintoneユーザのログイン名を出力します。
$($gusuku.meta.loginuser.name) 帳票を出力したkintoneユーザの表示名を出力します。
$($gusuku.meta.loginuser.email) 帳票を出力したkintoneユーザのメールアドレスを出力します。
$DATE($gusuku.meta.timestamp) 帳票を出力した日時を出力します。セルの書式設定でお好みの日付表記に変更してください。

特殊マクロ一覧

$IFはセルの先頭でのみ動作します。そのため、他の置換マクロと結合させて「$(a)$IF(…)」のような形で指定することはできません。

置換マクロ 説明
$IF,真ラベル,偽ラベル(フィールドコード) フィールドコードで指定した値が"true"の文字列であれば「真ラベル」に、それ以外なら「偽ラベル」に書かれた文字列に置換します。ture/falseを別の表記方法で出力したい場合に便利です。
$IF(フィールドコードA)請求あり$DATE(日付)請求はありません フィールドコードAで指定した文字列が「請求あり」の場合、日付フィールドの日付を出力し、それ以外なら「請求はありません」と出力されます。

一覧シートのみで利用できる置換マクロの仕様

置換マクロ 説明
$FOREACH および $END $FOREACHを記述した行から、$ENDを記述した行までを、選択されたレコード数分ループします。
ループの中では、各レコードのフィールドコードを指定した置換マクロを記述することが可能です。

詳細シートのみで利用できる置換マクロの仕様

置換マクロ 説明
$FOREACH(フィールドコード)
および $END
$FOREACHを記述した行から、$ENDを記述した行までをループします。
フィールドコードには、「サブテーブル」「添付ファイル」「文字列(複数行)」のフィールドコードを指定することが可能です。
ループの中ではサブテーブル内のフィールドコードを指定した置換マクロや、後述の$または$IMGを指定することが可能です。
$IMG $FOREACHで添付ファイルのフィールドコードを指定した場合、ループの中に記述することが可能です。
PNG/JPEG/GIF/BMP形式の画像が添付されている場合、そのカラムに出力されます(画像本来のサイズを超えて拡大はしません)。
$EXTIMG $FOREACHで添付ファイルのフィールドコードを指定した場合、ループの中に記述することが可能です。
$IMGマクロ同様画像を出力しますが、こちらは画像本来のサイズを超えてカラムに合わせて拡大します。添付画像のサイズによっては、出力時に非常に荒い画像になりますのでご注意ください。
$ $FOREACHで文字列(複数行)のフィールドコードを指定した場合、ループの中に記述することが可能です。
指定のフィールドコードを改行で区切った1行の文字列が出力されます。
$(contentType)
$(fileKey)
$(name)
$(size)
$FOREACHで添付ファイルのフィールドコードを指定した場合、ループの中に記述することが可能です。
添付ファイルの各情報を出力することが可能です。

FOREACH可能なフィールドの直接指定

「添付ファイル」や「文字列(複数行)」などのフィールドは、FOREACHでループを記述する代わりに数値を直接指定することも可能です。

  • $(複数行フィールド名)(0)

と指定すると、複数行フィールド名の値を改行で区切った1行目を出力することが可能です。

組織選択フィールドなどの出力

※グループ選択フィールド、ユーザー選択フィールドも同様となります。

組織選択フィールドを用いて選択された組織名を出力したい場合、以下のように記述します。「(name)」を記述しない場合にはコードが出力されます。

  • $(組織選択フィールドコード)(0)(name)

複数ある場合は数字の部分を増やしつつ、想定される個数を記述してください。

  • $(組織選択フィールドコード)(0)(name) $(組織選択フィールドコード)(1)(name)