テンプレート構文
変数とは、テンプレート内に置くプレースホルダーのことです。生成時に、各レコードのデータ(Excel のテーブルの行、SharePoint リストのアイテム、Dataverse の行、Google スプレッドシートのシートの行、Lark Base のレコード、またはドキュメント APIで送信した JSON)に置き換わります。データソースが何であっても構文は同じです。
波かっこでフィールド名を正確に囲みます。
{Field_Name}例:
{Customer_Name}→ “Acme Corp”{Invoice_Date}→ “2024-01-15”{Total_Amount}→ “1,500.00”
プレースホルダーの出力内容
Section titled “プレースホルダーの出力内容”フィルターを付けない場合、プレースホルダーはデータソースでの表示どおりに値を出力します。数値と日付のフィルターは、その元にある生の値に対して働きます。フィルターは生の値を読むを参照してください。
| 値 | Excel | SharePoint リスト | Dataverse | Google スプレッドシート | Lark Base | ドキュメント API |
|---|---|---|---|---|---|---|
| 数値 | セルの表示どおり | 1,234.5。小数点以下は列の桁数 |
Dataverse が書式設定したテキスト | セルの表示どおり | フィールドの数値の形式 | 送信したまま: 1234.5 |
| 通貨 | セルの表示どおり | 通常は列の通貨で: $1,234.50 |
Dataverse が書式設定したテキスト(通貨記号付き) | セルの表示どおり | フィールドの通貨で: $1,234.50 |
送信したまま |
| パーセント | セルの表示どおり: 12% |
12% |
数値として | セルの表示どおり: 12% |
進捗フィールド(通常): 12% |
送信したまま |
| 日付、時刻 | セルの表示どおり | 2026/02/26、時刻付きなら 2026/02/26 15:30 |
2026/02/26、時刻付きなら 2026/02/26 15:30 |
セルの表示どおり | フィールドの日付の形式。既定は 2026/02/26 |
送信したまま |
| ユーザー | テキスト | 名前 | 名前を出力する参照 | ユーザーチップ: 名前 | 名前 | 送信したまま |
| リンク | =HYPERLINK(…): アドレス |
アドレス | アドレス | 1つのリンクだけのセル: アドレス | アドレス | 送信したまま |
| 選択肢 | テキスト | ラベル。複数ならカンマ区切り | ラベル。複数ならカンマ区切り | 選択肢。複数ならセルの表示どおり | 選択肢。複数ならカンマ区切り | 送信したまま。リストはカンマ区切り |
| はい/いいえ | true / false |
true / false |
列自体のラベル(Yes / No など) |
チェックボックス: true / false |
チェックボックス: true / false |
true / false |
| 画像、ファイル | 画像の列 | 画像の列(Picture、Image)と、アイテムの {Attachments} |
画像列、ファイル列、メモ | ファイルチップ、Drive ファイルへのリンク、=IMAGE(…) |
添付ファイルフィールド | 画像の URL |
| 関連する行 | 関連テーブル | 参照列 | 参照とリレーションシップ | 関連タブ | リンクフィールド、ルックアップフィールド | オブジェクトとリスト |
- SharePoint、Dataverse、Lark Base の日付は、テンプレートのタイムゾーン(テンプレート → 出力 → タイムゾーン、未設定なら UTC)で出力されます。
- 空のセルやフィールドは何も出力せず、
{#if}では空として扱われます。 - 画像とファイルはテキストとしては何も出力しません。画像の代替テキストで配置するか(動的な画像を参照)、
{ATTACH:…}で PDF に追加します。 - 関連する行は、ドット記法かループで参照します。リンクレコードを参照してください。
- リンクとユーザーには
{Website.text}や{Owner.email}のようなサブプロパティがあります。フィールドの詳細プロパティを参照してください。 - Lark Base: 数式フィールドは結果の型(テキスト、数値、日付)に応じて出力され、評価フィールドは通常
4/5と出力され、ルックアップフィールドは参照先の値を出力します。
詳しくは各データソースのページを参照してください: Excel アドイン、SharePoint リストと Dataverse、Google スプレッドシートのアドオン、ドキュメント API。
フィルターは生の値を読む
Section titled “フィルターは生の値を読む”数値と日付のフィルターは、値の表示を無視し、その元にある生の値を書式設定し直します。
{Price} → "$1,234.50"(データソースでの表示どおり){Price | number:2} → "1,234.50"(生の数値を再フォーマット){Price | currency:"EUR":"de-DE"} → "1.234,50 €"(生の数値、ドイツ語ロケール)
{Date} → "2026/02/26"(データソースでの表示どおり){Date | date:"DD MMM YYYY"} → "26 Feb 2026"(生の日付を再フォーマット)sum、avg、max、min、where、sort が比較するのも、この生の値です。生の値が何になるかは、データソースによって異なります。
| データソース | 生の数値 | 生の日付 |
|---|---|---|
| Excel | 表示形式にかかわらず、セルの値 | セルが保持する日付と時刻を、テンプレートのタイムゾーンで |
| SharePoint リスト | 保存されている数値 | 日付のみの列: その日を、テンプレートのタイムゾーンで。日付と時刻の列: 保存されている時点 |
| Dataverse | 保存されている数値 | 日付のみの列またはタイムゾーンに依存しない列: 保持する日付と時刻を、テンプレートのタイムゾーンで。それ以外: 保存されている時点 |
| Google スプレッドシート | セルの表示形式の元にある値 | セルが保持する日付と時刻を、テンプレートのタイムゾーンで |
| Lark Base | フィールドの数値 | 保存されている時点 |
| ドキュメント API | JSON の数値、または "1234.5" のような数値だけのテキスト |
2026-02-26 や 2026-02-26 15:30 のようなテキストは、テンプレートのタイムゾーンで読み取ります。2026-02-26T15:30:00Z のようにタイムゾーン付きのテキストは、書かれたとおりに読み取ります。数値は、1970年1月1日(UTC)からのミリ秒として読み取ります |
- パーセントの生の値は小数です。
12%は0.12で、percentはそれを100倍します。ドキュメント API では12ではなく0.12を送ってください。 - 生の数値がない値に数値のフィルターを適用すると、警告とともにそのまま出力されます。
"1,234.50"のような区切り文字入りのテキスト、Lark の評価フィールド、複数の数値を返す Lark のルックアップがこれにあたります。 - Excel と Google スプレッドシートでは、時刻や経過時間だけのセルはテキストです。表示どおりに出力され、日付としては扱われません。
- 1904 年日付システムを使う Excel ブックでも、日付は正しく出力されます。ただし AutomaDoc が OneDrive や SharePoint からブックを読み取る場合(テンプレートをファイルに紐づけた場合)、生の日付は4年と1日早くなります。
リンクレコード(ネストしたフィールド)
Section titled “リンクレコード(ネストしたフィールド)”リンクレコードは、関連テーブル(Excel)、参照(SharePoint、Dataverse)、関連タブ(Google スプレッドシート)、リンクフィールド(Lark Base)、ネストしたオブジェクト(ドキュメント API)から得られます。ドット記法でそのフィールドを参照できます。
{Customer.Name}{Customer.Address}{Customer.Email}ネストは5階層まで対応します。
{Order.Customer.Company.Address.City}フィールドの詳細プロパティ(ドット記法)
Section titled “フィールドの詳細プロパティ(ドット記法)”リンクとユーザー、そして Lark Base の一部のフィールド型は、ドット記法でサブプロパティを参照できます。ドット記法を使わない場合は既定値が出力されます。
Excel の =HYPERLINK(…) のセル、SharePoint のハイパーリンク列、1つのリンクだけの Google スプレッドシートのセル、Lark の URL フィールドのリンクです。
{Website} → "https://example.com"(アドレス){Website.text} → "Example Site"(表示される文字列){Website.link} → "https://example.com"(アドレス)Google スプレッドシートで、ほかのテキストの中にリンクがあるセルは、そのテキストを出力します。Excel で 挿入 → リンク から追加したリンクは、その表示文字列を出力します。
1人のユーザーです。SharePoint のユーザー列、Lark の Created By、Modified By フィールドから得られます。
{Owner} → "John Doe"(名前){Owner.name} → "John Doe"{Owner.email} → "john@example.com"(SharePoint){Owner.en_name} → "John Doe"(Lark Base: 英語名){Owner.id} → データソースでのユーザー ID。Lark Base では "ou_abc123" のような Lark ユーザー ID複数のユーザーが入る値は、1人しか入っていなくてもリストなので、{Assignee.name} は何も返しません。Lark の User フィールド、Google スプレッドシートのユーザーチップのセル、複数のユーザーを許可する SharePoint のユーザー列がこれにあたります。特定の人にはインデックスを、全員にはループを使ってください。
{Assignee} → "John Doe, Jane Roe"(全員の名前){Assignee[0].name} → "John Doe"(1人目){Assignee[0].email} → "john@example.com"(SharePoint、Google スプレッドシート)
{#Assignee} {name}{/Assignee}Dataverse では、ユーザー(所有者、作成者など)は参照です。{Owner} は名前を出力し、{Owner.Field} はその人の行の列を読み取ります。ほかのリンクレコードと同じです。
位置情報フィールド(Lark Base)
Section titled “位置情報フィールド(Lark Base)”{Office} → "Headquarters, 123 Main St, City, Country"{Office.name} → "Headquarters"{Office.full_address} → "123 Main St, City, Country"{Office.address} → "123 Main St"グループフィールド(Lark Base)
Section titled “グループフィールド(Lark Base)”グループフィールドはリストなので {Team.name} は何も返しません。インデックスかループを使ってください。
{Team} → "Engineering, Design"(グループ名をカンマ区切り){Team[0].name} → "Engineering"(最初のグループ){Team[0].id} → 最初のグループ IDすべてのグループを出すにはループを使います。
{#Team} {name} (ID: {id}){/Team}複数の選択肢
Section titled “複数の選択肢”Lark の複数選択フィールド、複数の値を持つ SharePoint の選択肢列や管理されたメタデータ列、Dataverse の複数選択の選択肢、Google スプレッドシートの複数選択プルダウンは、ループで回すことも、任意の区切り文字で連結することもできます。
{Tags} → "Red, Blue, Green"(既定はカンマ区切り){Tags | join:" / "} → "Red / Blue / Green"{#Tags} - {.}{/Tags}ドキュメント API では、単純な値のリストは届いた時点でカンマ区切りで連結されているため、{Tags} は Red, Blue, Green と出力され、ループできません。ループするには、オブジェクトのリストを送信してください。
ループ(複数リンクのフィールド)
Section titled “ループ(複数リンクのフィールド)”複数のレコードにリンクするフィールドでは、ループ構文で項目ごとに内容を繰り返せます。
{#Line_Items} Product: {Product_Name} Quantity: {Quantity} Price: {Price}{/Line_Items}{#Field} でループを開始し、{/Field} で閉じます。ループ内では親フィールド名を付けずにフィールド名を書きます。
閉じタグの省略形
Section titled “閉じタグの省略形”フィールド名を繰り返す代わりに {/} を使えます。
{#Line_Items} {Product_Name} - {Price}{/}表の行の展開
Section titled “表の行の展開”ループタグを表の行の中に置くと、その行全体が項目ごとに複製されます。明細表に最適です。
| Product | Qty | Price |
|---|---|---|
{#Line_Items} {Product_Name} |
{Quantity} |
{Price} {/Line_Items} |
単純な値の配列
Section titled “単純な値の配列”オブジェクトではなく単純な値の配列では、{.} で現在の項目を参照します。
{#Tags} {.}{/Tags}ループのメタデータ
Section titled “ループのメタデータ”どのループの中でも、次の特別な変数が使えます。
| 変数 | 説明 | 例 |
|---|---|---|
{$index} |
現在のインデックス(0 から開始) | 0, 1, 2, … |
{$num} |
行番号(1 から開始) | 1, 2, 3, … |
{$first} |
最初の項目で true |
true / false を出力 |
{$last} |
最後の項目で true |
true / false を出力 |
ループの入れ子
Section titled “ループの入れ子”ループは入れ子にできます。内側のループから外側のスコープのフィールドも参照できます。
{#Departments} Department: {Name} {#Employees} {Name} works in {Department.Name} {/Employees}{/Departments}内側と外側に同じフィールド名がある場合は、内側が優先されます。
行の絞り込み・並べ替え・件数の制限
Section titled “行の絞り込み・並べ替え・件数の制限”ループの開始タグにフィルターを追加すると、どの行をどの順序で繰り返すかを選べます。
{#Line_Items | where:"Status == 'Approved'" | sort:"Amount":"desc" | limit:10} {Product_Name} {Amount | currency:"USD"}{/Line_Items}| フィルター | 動作 | 例 |
|---|---|---|
where |
条件に一致する行だけを残す | where:"Status == 'Approved'" |
sort |
フィールドで行を並べ替える(小さい順・古い順) | sort:"Due_Date" |
sort |
…または大きい順・新しい順 | sort:"Amount":"desc" |
limit |
先頭から指定した数の行を残す | limit:10 |
offset |
先頭から指定した数の行を飛ばす | offset:10 |
unique |
フィールドの値ごとに最初の行だけを残す | unique:"Customer" |
フィルターは書いた順に左から右へ適用されます。sort:"Amount":"desc" | limit:3 は値が最も大きい 3 行ですが、limit:3 | sort:"Amount":"desc" は先頭の 3 行を大きい順に並べたものです。
where の条件はダブルクォートの中に書き、テキストの値はシングルクォートで囲みます。
| 条件 | 残る行 |
|---|---|
Status == 'Approved' |
Status がちょうど Approved |
Status != 'Draft' |
Status が Draft 以外 |
Amount > 1000 |
Amount が 1000 より大きい(>=、<、<= も使用可) |
Paid |
Paid に値がある({#if Paid} と同じ) |
!Notes |
Notes が空 |
- 数値は表示ではなく、生の値で比較されます。
Amount > 1000は$1,250.00に一致します。数値は1,000ではなく1000のように、そのまま書いてください。 - 日付は
2026-01-31(時刻付きなら2026-01-31 17:30)の形式で書くと、テンプレートのタイムゾーンで日付として比較されます:where:"Due_Date >= '2026-01-01'"。比較は 1 日単位で、Due_Date > '2026-01-31'は 2 月 1 日から一致します。 - 条件は
&&(かつ)と||(または)でつなぎ、括弧でまとめられます:where:"Status == 'Approved' && (Amount > 1000 || Rush)"。 sortは日付を日付順、数値を数値順、テキストをアルファベット順に並べます。空のセルは常に最後になります。whereフィルターを複数書くと、すべてに一致する行だけが残ります。sortフィルターを続けて書くと、まず最初のフィルターで並べ替え、そこで値が同じ行を次のフィルターで並べ替えます:sort:"Category" | sort:"Amount":"desc"。- リンクレコードのフィールドはドット記法で指定できます:
where:"Product.Category == 'Hardware'"。 - 複数選択フィールドのような単純な値のリストでは、値そのものを
.で表します:{#Tags | where:". != 'Internal'" | sort}。 - フィルターは、表の行のループ、段落のループ、入れ子のループ、Lark 承認の明細リストのいずれでも同じように使えます。
絞り込んだ表と一致する合計
Section titled “絞り込んだ表と一致する合計”sum、count、join にも同じフィルターを付けられるため、上の表に表示されている行だけを正確に合計できます。
{Line_Items | where:"Status == 'Approved'" | sum:"Amount" | currency:"USD"}{Line_Items | where:"Status == 'Approved'" | count} approved items合計のフィルターを適用できない場合は、すべての行を合計する代わりに、合計は空欄になり警告が出ます。
横方向のループ(列)
Section titled “横方向のループ(列)”表の中のループに horizontal を追加すると、行を下へ繰り返す代わりに、セルを横方向に、項目ごとに 1 列ずつ繰り返します。
| ラベル | 横方向に繰り返す |
|---|---|
| Name | {#Staff | horizontal} {Name} |
| Role | {Role} {/Staff} |
3 人であれば、1 人につき 1 列の表になります。開始タグと閉じタグの間にあるすべての行がまとめて繰り返されるため、各人の名前と役職は同じ列に並びます。
- 新しい列はテンプレートのセルの幅を均等に分け合い、その罫線と網かけを引き継ぎます。
- ほかのフィルターと組み合わせられます:
{#Staff | where:"Active" | sort:"Name" | horizontal}。 - 最大 20 列です。それを超える項目は省略され、警告が出ます。
- リストが空の場合、セルは削除されず空欄になります。
- 横方向のループは行のループの中にも置けます。その場合、各行にはその行自身のリストの項目数だけ列ができます。
- 表の外では
horizontalは警告とともに無視され、ループは通常どおり繰り返されます。
条件付きの内容
Section titled “条件付きの内容”フィールドの値に応じて内容を表示または非表示にします。
値があるかの判定
Section titled “値があるかの判定”フィールドに値があるときだけ表示します。
{#if Discount} Discount applied: {Discount}{/if}空かの判定(否定)
Section titled “空かの判定(否定)”フィールドが空のときだけ表示します。
{#if !Notes} No additional notes.{/if}{#if Status == "Approved"} This invoice has been approved.{/if}非等価の比較
Section titled “非等価の比較”{#if Status != "Draft"} This document has been submitted.{/if}数値と日付の比較
Section titled “数値と日付の比較”>、>=、<、<= は、数値を値そのもので、日付を日付として(2026-01-31 の形式で、テンプレートのタイムゾーンで)比較します:
{#if Amount > 1000} Requires a second approval.{/if}
{#if Due_Date < "2026-01-01"} Overdue.{/if}{#if} の == と != は、出力されるとおりの文字列で比較します。{#if Qty == "2"} は 2.00 と表示される数量には一致しません。where フィルターや {#Qty == 2}…{/} のセクションでは、同じ数値や同じ日付にも一致します。
フィルターはパイプ(|)構文で値の表示方法を変換します。
{Field | filterName}{Field | filterName:"arg1":"arg2"}フィルターは値を取得した後、ドキュメントに挿入する前に適用されます。フィルターを使わない場合は、データソースでの表示どおりに出力されます(プレースホルダーの出力内容を参照)。
文字列フィルター
Section titled “文字列フィルター”| フィルター | 説明 | 例 | 出力 |
|---|---|---|---|
upper |
大文字にする | {Name | upper} |
ACME CORP |
lower |
小文字にする | {Name | lower} |
acme corp |
capitalize |
各単語の先頭を大文字にする | {Name | capitalize} |
Acme Corp |
trim |
前後の空白を削除する | {Name | trim} |
Acme Corp |
truncate |
指定の長さで切り詰める(既定 50) | {Description | truncate:16} |
Lorem ipsum dolo... |
pad |
指定文字で桁を埋める(既定 0) |
{$num | pad:3} |
001 |
数値フィルター
Section titled “数値フィルター”number、currency、percent には、地域に応じた書式のためのロケールを任意で指定できます。
| フィルター | 引数 | 例 | 出力 |
|---|---|---|---|
number |
小数桁数, ロケール | {Price | number:2} |
1,234.50 |
number |
小数桁数, ロケール | {Price | number:2:"de-DE"} |
1.234,50 |
currency |
通貨コード, ロケール | {Price | currency:"USD"} |
$1,234.50 |
currency |
通貨コード, ロケール | {Price | currency:"EUR":"de-DE"} |
1.234,50 € |
currency |
通貨コード, ロケール | {Price | currency:"JPY":"ja-JP"} |
¥1,235 |
currency |
通貨コード, ロケール, 小数桁数 | {Price | currency:"IDR":"id-ID":2} |
Rp 1.234,50 |
percent |
小数桁数, ロケール | {Rate | percent:1} |
45.6% |
percent |
小数桁数, ロケール | {Rate | percent:1:"de-DE"} |
45,6 % |
toFixed |
小数桁数 | {Price | toFixed:2} |
1234.50(桁区切りなし) |
chineseUppercase |
なし | {Amount | chineseUppercase} |
捌万捌仟捌佰捌拾捌 |
chineseLowercase |
なし | {Amount | chineseLowercase} |
八八八八八 |
chineseFinancial |
なし | {Amount | chineseFinancial} |
捌万捌仟捌佰捌拾捌元整 |
日付フィルター
Section titled “日付フィルター”データでの日付の書式が必要な形式と異なるときは、独自のパターンで日付を整形できます。
構文: {Field | date:"format":"timezone":"locale"}
引数はすべて任意です。タイムゾーンの既定はテンプレートの設定(テンプレート → 出力 → タイムゾーン)で、未設定なら UTC です。ロケールの既定は en-US です。ドキュメント API や Lark 承認フォームから届く 2026-01-31 のようなタイムゾーンのない日付テキストは、タイムゾーンにかかわらずその日として出力されます。
| フィルター | 引数 | 例 | 出力 |
|---|---|---|---|
date |
書式, タイムゾーン, ロケール | {Date | date:"DD MMM YYYY"} |
26 Feb 2026 |
date |
書式, タイムゾーン, ロケール | {Date | date:"dddd, DD MMMM YYYY"} |
Thursday, 26 February 2026 |
date |
書式, タイムゾーン, ロケール | {Date | date:"DD MMMM YYYY":"UTC":"fr-FR"} |
26 février 2026 |
date |
書式, タイムゾーン, ロケール | {Date | date:"dddd, DD MMMM YYYY":"UTC":"de-DE"} |
Donnerstag, 26 Februar 2026 |
対応する日付トークン:
| トークン | 出力 | 例 |
|---|---|---|
YYYY |
4桁の年 | 2026 |
MMMM |
月の完全名(ロケール依存) | February, février, Februar |
MMM |
月の短縮名(ロケール依存) | Feb, févr., Feb |
MM |
2桁の月 | 02 |
dddd |
曜日の完全名(ロケール依存) | Thursday, Donnerstag, 木曜日 |
ddd |
曜日の短縮名(ロケール依存) | Thu, Do, 木 |
DD |
2桁の日 | 26 |
HH |
24時間表記の時 | 15 |
mm |
分 | 30 |
ss |
秒 | 00 |
例:
{Invoice_Date | date:"DD MMM YYYY"} → 26 Feb 2026{Invoice_Date | date:"YYYY-MM-DD"} → 2026-02-26{Invoice_Date | date:"MM/DD/YYYY"} → 02/26/2026{Invoice_Date | date:"DD/MM/YYYY":"Asia/Tokyo"} → 26/02/2026(東京タイムゾーン){Invoice_Date | date:"dddd, DD MMMM YYYY":"UTC":"ja-JP"} → 木曜日, 26 2月 2026{Invoice_Date | date:"DD MMMM YYYY":"UTC":"id-ID"} → 26 Februari 2026その他のフィルター
Section titled “その他のフィルター”| フィルター | 説明 | 例 | 出力 |
|---|---|---|---|
join |
配列の値を連結(既定 , ) |
{Tags | join:" / "} |
Red / Blue / Green |
join |
各行の1つのフィールドを連結(空の値は除く) | {Items | join:", ":"Name"} |
Widget, Gadget |
sum |
ループの全行で項目を合計 | {Items | sum:"Price"} |
1234.5 |
sum |
合計を次のフィルターで書式設定 | {Items | sum:"Price" | currency:"USD"} |
$1,234.50 |
count |
ループの行数 | {Items | count} |
12 |
avg |
全行での項目の平均(空のセルは除く) | {Items | avg:"Price"} |
411.5 |
max / min |
全行での項目の最大値 / 最小値 | {Items | max:"Price"} |
$980.00 |
default |
空のときの代替値 | {Phone | default:"N/A"} |
N/A |
フィルターの連結
Section titled “フィルターの連結”パイプを重ねることで、左から右の順にフィルターを連結できます。
{Name | trim | upper} → " hello " が "HELLO" になる{$num | pad:3} → 1 が "001" になる{Phone | default:"N/A" | upper} → null が "N/A" になるループ内でのフィルター
Section titled “ループ内でのフィルター”フィルターはループ変数や現在項目の参照にも使えます。
{#Items} #{$num | pad:3} - {Name | upper}{/Items}
{#Tags}{. | capitalize}, {/Tags}プレースホルダー画像を、データの画像に差し替えます。Excel のテーブルや SharePoint リストの画像の列、Dataverse の画像列、Google スプレッドシートのファイルチップや =IMAGE(…) のセル、Lark の添付ファイルフィールド、ドキュメント API に送った画像の URL が使えます。各データソースで使えるものは上の表のとおりです。
- Word テンプレートに任意の画像を挿入します(これがプレースホルダーになります)。
- 画像を右クリック → 代替テキストの編集 を選びます。
- 代替テキストの説明に
{FieldName}と入力します。 - テンプレートを保存します。
プレースホルダー画像はそのフィールドの画像に置き換わり、元のサイズが保たれます。
添付ファイルが複数あるフィールドでは、インデックス記法を使います。
{Photo} → 1枚目の画像({Photo[0]} と同じ){Photo[1]} → 2枚目の画像{Photo[2]} → 3枚目の画像すべての画像をループする
Section titled “すべての画像をループする”添付ファイルの数が可変の場合は、代替テキストに {.} を指定したループ構文を使います。添付ファイルごとにプレースホルダーが複製されます。
{#Product_Photos} [代替テキストが {.} の画像]{/Product_Photos}表の中では、添付ファイルごとに1行が割り当てられます。
| # | Photo | Filename |
|---|---|---|
{#Product_Photos} {$num} |
画像の代替テキスト: {.} |
{name} {/Product_Photos} |
ループ内で使えるプロパティ:
| 変数 | 説明 | 例 |
|---|---|---|
{name} |
ファイル名 | photo1.jpg |
{type} |
MIME タイプ | image/jpeg |
{size} |
ファイルサイズ(バイト) | 204800 |
リンクレコードのループ内の画像
Section titled “リンクレコードのループ内の画像”画像プレースホルダーはループブロックの中でも動作します。繰り返しごとに、その項目に対応する画像が解決されます。
{#Employees} Name: {Name} Photo: [代替テキストが {Photo} の画像]{/Employees}QR コードとバーコード
Section titled “QR コードとバーコード”フィールドの値から QR コードやバーコードを生成します。設定方法は動的な画像と同じで、画像の代替テキストを使います。
QR コード
Section titled “QR コード”{QR:FieldName}例: {QR:Order_ID} は Order_ID の値を含む QR コードを生成します。
| 構文 | 種類 | 備考 |
|---|---|---|
{BARCODE:FieldName} |
Code128 | 既定。英数字に対応 |
{BARCODE128:FieldName} |
Code128 | Code128 を明示 |
{BARCODE39:FieldName} |
Code39 | 大文字と数字のみ |
{BARCODEEAN13:FieldName} |
EAN-13 | 13桁の小売商品コード |
{BARCODEEAN8:FieldName} |
EAN-8 | 8桁の短縮 EAN |
{BARCODEUPCA:FieldName} |
UPC-A | 12桁の北米小売コード |
{BARCODEUPCE:FieldName} |
UPC-E | 圧縮版 UPC |
{BARCODEITF14:FieldName} |
ITF-14 | 出荷・ケース用コード |
{BARCODEDATAMATRIX:FieldName} |
DataMatrix | 2次元、高密度 |
{BARCODEPDF417:FieldName} |
PDF417 | 2次元、積層型リニア |
接頭辞は大文字と小文字を区別しません。{qr:Field} と {QR:Field} はどちらも動作します。
ヘッダーとフッター
Section titled “ヘッダーとフッター”すべてのプレースホルダー構文は、本文と同じようにヘッダーとフッターでも使えます。
よくある使い方:
- ヘッダーに会社名やロゴ
- フッターに文書番号や日付
Invoice for {Customer_Name}のような動的なラベル
追加方法: 挿入 → ヘッダー/フッター → 編集 で {Field_Name} のようなプレースホルダーを入力します。
他の Lark ドキュメントアプリからの移行
Section titled “他の Lark ドキュメントアプリからの移行”他の Lark ドキュメントアプリ向けに作成したテンプレートは、変更せずにそのまま使えます。Word ファイルをそのままアップロードしてください。その構文は AutomaDoc では次のように動作します:
| 書き方 | AutomaDoc での動作 |
|---|---|
{#isNew} Welcome {/isNew} |
フィールドに値があるときにテキストを表示します。リストの場合はループになります |
{#!isNew}Welcome{/isNew} |
フィールドが空、未チェック、または空のリストのときにテキストを表示します |
{#Status=="Paid"}…{/} |
条件が成り立つときにテキストを表示します。!=、>、>=、<、<=、&&、|| も使えます |
{/} |
直近の開いているループまたはセクションを閉じます |
{$index+1} |
1 から始まる行番号。{$num} と同じです |
{#Items | sortBy:"Total":"desc"} |
sort と同じです |
{#Items | where:"A == 'x' && B > 5"} |
一致する行だけを残します。行の絞り込み・並べ替え・件数の制限と同じです |
表の行の先頭にある {>Items}{Name} |
そのセルと右側のセルを行に沿って横に繰り返し、項目ごとに 1 列にします。つまり横方向のループです |
{#image}{#$isImage}{%src}{/}{#!$isImage}{$fileName}{/}{/image} |
添付ファイルフィールドの画像をすべて出力し、画像以外のファイルはファイル名を出力します |
{%src | size:100:50} / {%src | maxSize:500:500} |
画像をピクセル単位でちょうどそのサイズ、またはそのサイズ以内で表示します |
{%Logo} |
添付ファイルフィールドの最初の画像を、元のサイズで(ページ幅を上限に)表示します |
{Name | uppercase} / {Name | lowercase} |
upper / lower と同じです |
{Price | toFixed:"2"} |
小数 2 桁の数値(桁区切りなし) |
{Price | currency:'USD'} |
引数はダブルクォートと同じくシングルクォートでも書けます |
{Date | customDate:'YYYY-MM-DD HH:mm:ss'} |
date と同じトークンを使い、テンプレートのタイムゾーンで出力します |
{Date | date:'full'} |
2024-7-13 Saturday 00:00:00 |
chineseUppercase、chineseLowercase、chineseFinancial |
数値を中国語で表記します。数値フィルターを参照 |
クイックリファレンス
Section titled “クイックリファレンス”| 構文 | 説明 |
|---|---|
{Field} |
通常の変数 |
{Field.Nested} |
リンクレコードのフィールド(ドット記法) |
{Link.text} / {Link.link} |
リンクのサブプロパティ |
{Owner.name} / .email / .id |
1人のユーザーのサブプロパティ(Lark Base では .en_name も) |
{Assignee[0].name} |
複数のユーザー。リストなのでインデックスかループを使う |
{Location.name} / {Location.full_address} |
Lark Base の位置情報のサブプロパティ |
{Team[0].name} / {Team[0].id} |
Lark Base のグループフィールド。リストなのでインデックスかループを使う |
{#Field}...{/Field} |
複数値フィールドのループ |
{#Field | where:"Status == 'Paid'"} |
一致する行だけをループ |
{#Field | sort:"Amount":"desc"} |
大きい順にループ |
{#Field | limit:5} / {#Field | offset:5} |
先頭 5 行 / 先頭 5 行以外のすべて |
{#Field | horizontal} |
表のセルを横方向に繰り返す(1 行につき 1 列) |
{Field | where:"Paid" | sum:"Amount"} |
一致する行の合計 |
{Field | count} |
行数 |
{Field | avg:"Amount"} / max / min |
行の平均・最大・最小 |
{#Field == "v"}...{/} |
条件が成り立つときに表示するセクション |
{#!Field}...{/Field} |
フィールドが空のときに表示するセクション |
{#if Field > 100}...{/if} |
条件(数値・日付の大小) |
{/} |
閉じタグの省略形(直近のループを閉じる) |
{.} |
ループ内の現在項目(単純な配列向け) |
{$index} |
ループのインデックス(0 起点) |
{$num} |
行番号(1 起点) |
{$first} / {$last} |
最初/最後の項目かどうか |
{#if Field}...{/if} |
条件(値がある) |
{#if !Field}...{/if} |
条件(空) |
{#if Field == "val"}...{/if} |
条件(等しい) |
{#if Field != "val"}...{/if} |
条件(等しくない) |
{Field | upper} |
フィルター: 大文字 |
{Field | lower} |
フィルター: 小文字 |
{Field | capitalize} |
フィルター: 単語の先頭を大文字 |
{Field | trim} |
フィルター: 空白を削除 |
{Field | truncate:30} |
フィルター: 省略記号付きで切り詰め |
{Field | pad:3} |
フィルター: ゼロ埋め |
{Field | number:2} |
フィルター: 小数桁数付きの数値 |
{Field | number:2:"de-DE"} |
フィルター: ロケール対応の数値 |
{Field | currency:"USD"} |
フィルター: 通貨書式 |
{Field | currency:"EUR":"de-DE"} |
フィルター: ロケール対応の通貨 |
{Field | percent:1} |
フィルター: パーセント |
{Field | date:"DD MMM YYYY"} |
フィルター: 独自の日付書式 |
{Field | date:"dddd, MMMM DD":"UTC":"fr-FR"} |
フィルター: ロケール対応の日付 |
{Field | join:" / "} |
フィルター: 区切り文字で配列を連結 |
{Field | default:"N/A"} |
フィルター: 代替値 |
{Field | trim | upper} |
フィルターの連結(左から右) |
{Photo} / {Photo[1]} |
画像(代替テキスト経由) |
{QR:Field} |
QR コード(代替テキスト経由) |
{BARCODE:Field} |
バーコード(代替テキスト経由) |