Excel テンプレート構文の入力
PDF4me Excel 人口 使用する Asposeスマートマーカー マージするための構文 JSON 設計されたデータに Excel ワークブック。マーカーフィールドを次のように入力します。 &=Items.ItemName 正常な細胞に直接 .xlsx ファイルを渡して、ワークブックと JSON エンジンへのペイロード。このページは、構文の公式リファレンスです。マーカー形式、修飾子パラメータ、複数シートの動作、数式処理、カルチャ形式、ダウンロード可能なサンプルテンプレートなど。 JSON エンドツーエンドで実行できるファイル。
外部参照: の Excel Populateエンジンは、 Aspose.Cellsスマートマーカー機能Asposeのドキュメントは公式の文法情報源です。このページではそれを要約して、 PDF4me ユーザーを追加し、 JSON-ペイロードの規則は、 PDF4me API。
サンプルファイル
サンプルテンプレートとそれに合ったものをダウンロードしてください JSON このページ全体で使用されているデータファイル。 PDF4me Excel 人口 REST 終点、 Power Automate アクション、または統合プラットフォームのいずれか。
&=アイテム。* Sheet1のサンプルで使用されているマーカー。RootData.Items[] 説明、数量、単価、割引、価格を含む。アイテム[] 文字列値を使用して厳密なテストを実行します JSON 弦の設定。製品[])3枚目のシート用。従業員[])スタッフ名簿シートに記入するため。フォーマットを選択してください
基本的なスマートマーカーは、 &= (アンパサンド=イコール)の後に、データソース名、ドット、フィールド名が続きます。
&=DataSource.FieldName
最初のレコードを配置するセルにマーカーを配置します。 JSON 配列の下 DataSourceエンジンは、最初のレコードをそのセルに書き込み、追加のレコードごとに新しい行を下に挿入します。同じ行にあるマーカーを持つ隣接するセルは一緒に展開され、各レコードが整列した状態を維持します。
最小限の例
テンプレート (シート1/ template.xlsx) はまさにこれです。
| A | B | C |
|---|---|---|
| 商品名 | 量 | 単価 |
&=Items.ItemName | &=Items.Qty | &=Items.UnitPrice |
JSON ペイロード (sheet23-data.json(一致するサンプル):
{
"Items": [
{ "ItemName": "A123", "Qty": "55", "UnitPrice": "3.05" },
{ "ItemName": "B456", "Qty": "20", "UnitPrice": "5.50" },
{ "ItemName": "C789", "Qty": "10", "UnitPrice": "12.99" }
]
}
出力例: エンジンは最初のレコードを2行目に書き込み、その下にさらに2行を挿入し、隣接するマーカーの位置に基づいて列を揃えます。1行目のヘッダー行はそのまま残ります。
修飾子パラメータ
スマートマーカーは、フィールド名の直後に括弧で囲まれたカンマ区切りのパラメータリストを受け入れ、レイアウトと動作を制御します。
&=DataSource.FieldName(parameter1, parameter2, ...)
最も有用なパラメータ:
| パラメータ | その機能 | 例 |
|---|---|---|
dynamic | Creates a dynamic range (and named formulas) around the populated cells. Use for output that feeds PivotTables, charts, or named-range formulas downstream. | &=Items.ItemName(dynamic) |
horizontal | Lays the records out left-to-right across columns instead of top-to-bottom down rows. Use for compact summaries or single-row dashboards. | &=Items.ItemName(horizontal) |
noadd | Replaces values in place without adding any new rows. Use when the template already contains enough pre-formatted rows and you do not want the layout to grow. | &=Items.ItemName(noadd) |
skip:N | Inserts N blank rows between each record. Useful for spaced-out reports such as packing slips or labels. | &=Items.ItemName(skip:1) |
copystyle | Copies the formatting of the marker cell down onto every populated row. Without it the first row keeps its style and the inserted rows pick up the default. | &=Items.ItemName(copystyle) |
shift | Shifts cells (right or down) when inserting populated rows so existing content below is preserved instead of overwritten. | &=Items.ItemName(shift) |
repeat | Repeats a header or section for each grouping. Used together with subtotal-style templates. | &=Items.ItemName(repeat) |
パラメータは組み合わせることができます。 &=Items.ItemName(dynamic, copystyle) 動的な範囲を作成し、行スタイルを挿入されたすべてのレコードにコピーします。
ネストされたデータソース
その時 JSON 配列を親オブジェクトの下にラップし、ドットパスでアクセスします。 請求書 シート template.xlsx は典型的な例です。2行目のマーカーは、 RootData の中へ Items:
B2: &=RootData.Items.ItemName
C2: &=RootData.Items.Description
D2: &=RootData.Items.Qty
E2: &=RootData.Items.UnitPrice
F2: &=RootData.Items.Discount
G2: &=RootData.Items.Price
一致するペイロードは sheet1-data.json:
{
"RootData": {
"Items": [
{ "ItemName": "Laptop", "Description": "Dell Inspiron 15", "Qty": 2, "UnitPrice": 750, "Discount": 50, "Price": 1450 },
{ "ItemName": "Mouse's", "Description": "Wireless Mouse", "Qty": 3, "UnitPrice": 25, "Discount": 0, "Price": 75 },
{ "ItemName": "Keyboard", "Description": "Mechanical Keyboard", "Qty": 1, "UnitPrice": 120, "Discount": 10, "Price": 110 }
]
}
}
埋め込まれたアポストロフィに注目してください "Mouse's"スマートマーカーはデフォルトで引用符付き文字列プリミティブを保持します( StrictJsonStrings 設定のデフォルト値は 真実) を次のように設定します。 間違い 引用符で囲まれた数値または日付文字列を型付き文字列に強制変換したい場合 Excel マージ中のセル値。
Excel 表と構造化された参照
請求書シート template.xlsx 強力なスマートマーカーパターンを示しています。マーカー行は Excel テーブル (名付けられた) SimpleInvoice数式セルは、A1 アドレスではなく構造化参照によって表の列を参照し、スマートマーカーが新しい行を挿入すると、表の範囲が自動的に拡張されます。
請求書シートの代表的な数式セル:
=IFERROR(IF(SimpleInvoice[[#This Row],[Unit price]]="","",
(SimpleInvoice[[#This Row],[Qty]] * SimpleInvoice[[#This Row],[Unit price]])
- SimpleInvoice[[#This Row],[Discount]]
), "")
表の外側にある集計セルは、列全体を参照します。
G7: =SUM(SimpleInvoice[Price]) // Invoice subtotal
G9: =IFERROR(G7*G8,"") // Sales tax (G8 is rate)
G11: =SUM(G2:G4)-G10 // Total (G10 is deposit)
これが重要な理由:エンジンがマーカー行を 1 レコードから N レコードに拡張すると、 SimpleInvoice テーブル範囲は自動的に拡張されます。 SUM(SimpleInvoice[Price]) 常に正しい列の合計を計算し、行ごとの数式はレコードごとに作成する必要なく下位の行に伝播されます。
複数シートテンプレート
Excel Populate は、1 つの呼び出しでワークブックのすべてのシートにデータを入力したり、マージをサブセットに制限したりできます。 ワークシート索引 パラメータ(1から始まる、カンマ区切り)。 template-3-sheets.xlsx サンプルには3枚のシートが含まれています。 この順番で:
| 位置 | シート名 | 使用したマーカー | サンプル JSON |
|---|---|---|---|
| 1 | Items | &=Items.ItemName、 &=Items.Qty、 &=Items.UnitPrice | items-data.json |
| 2 | Employees | &=Employees.EmployeeName、 &=Employees.Department、 &=Employees.Salary | employees-data.json |
| 3 | Products | &=Products.ProductName、 &=Products.Category、 &=Products.Stock | products-data.json |
3 つのシートすべてを 1 つの呼び出しで入力するには、3 つのシートをマージします。 JSON ペイロードを、最上位キーがマーカーのデータソース名と一致する単一のオブジェクトにまとめる。
{
"Items": [ { "ItemName": "A123", "Qty": "55", "UnitPrice": "3.05" }, ... ],
"Employees": [ { "EmployeeName": "John Doe", "Department": "IT", "Salary": "5000" }, ... ],
"Products": [ { "ProductName": "Laptop", "Category": "Electronics", "Stock": "15" }, ... ]
}
従業員シートのみにデータを入力するには、 Worksheet Indexes = 2 アクション呼び出しで。位置 1 と 3 は変更されません。アイテム + 製品のみを入力するには、 1,3。
数式処理
スマートマーカーはネイティブと連携します Excel 公式。重要なルールが2つあります。
- 静的な数式は拡張後も存続する。 次のような式
=B2*C2セル参照が通常の方法で調整された状態で、各行に展開コピーが渡される行 Excel 方法。数式セルにマーカーは必要ありません。 - 再計算はデフォルトで有効になっています。 の
Calculate Formulasこの設定は、データ入力後にワークブックを再計算するかどうかを制御します。そのままにしておいてください。 真実 開いた瞬間に合計と集計が正確なワークブックを受け取るには、次のように設定します。 間違い 後で独自のパイプラインで再計算する予定があり、コストを削減したい場合。
文化と地域に合わせたフォーマット
の Culture & Language Settings パラメータは標準カルチャ名を受け入れます(en-US、 fr-FR、 de-DE、 ja-JPなど)を制御し、エンジンが書き込む際に数値、日付、通貨の書式をどのように設定するかを制御します。 JSON 値を Excel セル。受信者が期待するロケールに合わせて設定します。デフォルトは en-US。
関連する 引用符のスタイル接頭辞 設定は Excel スタイル付き値にquote-prefixフラグが存在する場合、数値のように見えるがテキストとして表示されるべき値(口座番号、先頭にゼロが付いた郵便番号など)はテキストのままになります。
一般的なパターン
合計行を含む請求書明細項目
A1: Invoice number B1: &=Invoice.Number
A2: Date B2: &=Invoice.Date
A4: Item B4: Qty C4: Unit price D4: Total
A5: &=Items.ItemName B5: &=Items.Qty C5: &=Items.UnitPrice D5: =B5*C5
A6: Grand total D6: =SUM(D5:D5)
エンジンが各項目に対して5行目を展開すると、6行目の合計範囲もマーカー行の下にあるため、それに合わせて展開されます。
並べて比較した表(横並び)
A1: Metric B1: &=Months.Name(horizontal)
A2: Revenue B2: &=Months.Revenue(horizontal)
A3: Expenses B3: &=Months.Expenses(horizontal)
各月は、Bの下の新しい行ではなく、Bの右側の新しい列になります。
印刷済みラベル(noadd)
シート上に24個の書式設定済みのラベルセルがあり、行を追加せずにデータをそれらのセルに流し込みたい場合:
&=Labels.Name(noadd)
&=Labels.Address(noadd)
エンジンは既存の24行を順番に埋め、収まりきらないレコードは黙って切り捨てます。
クイックチェックリスト
&=&= セルA1(または任意のセル)に入力してください。それ以外の値は通常のセル値として扱われます。商品名 テンプレート内で一致しません アイテム名 で JSON。