Zum Hauptinhalt springen

Excel Syntax zum Ausfüllen der Vorlage

Was diese Seite behandelt

PDF4me Excel Bevölkern verwendet die Aspose Smart Markers Syntax zum Zusammenführen JSON Daten in ein Design Excel Arbeitsmappe. Sie geben Markierungsfelder wie folgt ein: &=Items.ItemName direkt in die Zellen eines normalen .xlsx Datei, dann die Arbeitsmappe plus eine übergeben JSON Nutzdaten für die Engine. Diese Seite ist die maßgebliche Referenz für die Syntax: Markierungsformat, Modifikatorparameter, Verhalten in mehreren Tabellenblättern, Formelverarbeitung, Kulturformatierung und herunterladbare Beispielvorlage. JSON Dateien, die Sie vollständig ausführen können.

Externe Referenz: Die Excel Die Populate-Engine implementiert die Aspose.Cells Smart Markers-FunktionDie Aspose-Dokumentation ist die maßgebliche Grammatikquelle; diese Seite fasst sie für PDF4me Benutzer und fügt die JSON-Payload-Konventionen, die spezifisch für die PDF4me APIDie

Beispieldateien

Laden Sie die Beispielvorlagen und die passenden Teile herunter. JSON Die auf dieser Seite verwendeten Datendateien. Ziehen Sie sie direkt in den entsprechenden Ordner. PDF4me Excel Bevölkern REST Endpunkt Power Automate Aktion oder eine der Integrationsplattformen.

Format auswählen

Der grundlegende Smart Marker ist ein einzelner Zellenwert, der mit einem beginnt &= (kaufmännisches Und-Gleichheitszeichen) gefolgt vom Namen der Datenquelle, einem Punkt und dem Feldnamen.

&=DataSource.FieldName

Platzieren Sie die Markierung in der Zelle, in der der erste Datensatz landen soll. Wenn Sie einen angeben JSON Array unter DataSourceDie Engine schreibt den ersten Datensatz in diese Zelle und fügt für jeden weiteren Datensatz eine neue Zeile darunter ein. Benachbarte Zellen, die Markierungen in derselben Zeile enthalten, werden gemeinsam erweitert, sodass die Datensätze ausgerichtet bleiben.

Minimalbeispiel

Vorlage (Blatt 1 von template.xlsx) ist genau das:

ABC
ArtikelnameMengeStückpreis
&=Items.ItemName&=Items.Qty&=Items.UnitPrice

JSON Nutzlast (sheet23-data.json, die entsprechende Probe):

{
"Items": [
{ "ItemName": "A123", "Qty": "55", "UnitPrice": "3.05" },
{ "ItemName": "B456", "Qty": "20", "UnitPrice": "5.50" },
{ "ItemName": "C789", "Qty": "10", "UnitPrice": "12.99" }
]
}

Ausgabe: Die Engine schreibt den ersten Datensatz in Zeile 2, fügt darunter zwei weitere Zeilen ein und richtet die Spalten anhand der Position benachbarter Markierungen aus. Die Kopfzeile in Zeile 1 bleibt unverändert.

Modifikatorparameter

Smart Markers akzeptieren eine durch Kommas getrennte Parameterliste in Klammern direkt nach dem Feldnamen, um Layout und Verhalten zu steuern.

&=DataSource.FieldName(parameter1, parameter2, ...)

Die wichtigsten Parameter:

ParameterWas es tutBeispiel
dynamicCreates 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)
horizontalLays 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)
noaddReplaces 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:NInserts N blank rows between each record. Useful for spaced-out reports such as packing slips or labels.&=Items.ItemName(skip:1)
copystyleCopies 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)
shiftShifts cells (right or down) when inserting populated rows so existing content below is preserved instead of overwritten.&=Items.ItemName(shift)
repeatRepeats a header or section for each grouping. Used together with subtotal-style templates.&=Items.ItemName(repeat)

Parameter können kombiniert werden: &=Items.ItemName(dynamic, copystyle) erstellt einen dynamischen Bereich UND kopiert den Zeilenstil in jeden eingefügten Datensatz.

Verschachtelte Datenquellen

Wenn die JSON Das Array wird in ein übergeordnetes Objekt eingebettet; der Zugriff darauf erfolgt über einen gepunkteten Pfad. Rechnung Blatt template.xlsx ist das kanonische Beispiel. Seine Markierungen in Zeile 2 lauten durch RootData hinein 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

Die passende Nutzlast ist 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 }
]
}
}

Beachten Sie den eingebetteten Apostroph in "Mouse's"Smart Markers erhalten standardmäßig die in Anführungszeichen gesetzten Zeichenkettenprimitive (die StrictJsonStrings Standardeinstellungen festlegen WAHRStellen Sie es ein auf FALSCH wenn Sie möchten, dass die Engine Anführungszeichen umschreibt und numerische oder Datumszeichenfolgen in Text umwandelt Excel Zellwerte während der Zusammenführung.

Excel Tabellen und strukturierte Verweise

Das Rechnungsblatt template.xlsx zeigt ein leistungsstarkes Smart Markers-Muster: Die Markerreihe befindet sich innerhalb eines Excel Tisch (benannt SimpleInvoice). Formelzellen verweisen auf Tabellenspalten mittels strukturierter Referenz anstelle von A1-Adressen, und der Tabellenbereich wächst automatisch, wenn Smart Markers neue Zeilen einfügen.

Eine beispielhafte Formelzelle aus dem Rechnungsblatt:

=IFERROR(IF(SimpleInvoice[[#This Row],[Unit price]]="","",
(SimpleInvoice[[#This Row],[Qty]] * SimpleInvoice[[#This Row],[Unit price]])
- SimpleInvoice[[#This Row],[Discount]]
), "")

Aggregationszellen außerhalb der Tabelle beziehen sich auf ganze Spalten:

G7: =SUM(SimpleInvoice[Price]) // Invoice subtotal
G9: =IFERROR(G7*G8,"") // Sales tax (G8 is rate)
G11: =SUM(G2:G4)-G10 // Total (G10 is deposit)

Warum das wichtig ist: Wenn die Engine die Markerzeile von 1 Datensatz auf N Datensätze erweitert, SimpleInvoice Tabellenbereich wird automatisch erweitert, SUM(SimpleInvoice[Price]) Die rechte Spalte wird fortlaufend summiert, und zeilenweise Formeln werden automatisch nach unten weitergegeben, ohne dass Sie sie für jeden Datensatz einzeln erstellen müssen.

Vorlagen mit mehreren Blättern

Excel Mit der Funktion „Populate“ können alle Tabellenblätter einer Arbeitsmappe in einem einzigen Aufruf gefüllt oder die Zusammenführung mithilfe der Funktion auf eine Teilmenge beschränkt werden. Arbeitsblattverzeichnisse Parameter (1-basiert, durch Komma getrennt). Der template-3-sheets.xlsx Die Probe enthält drei Blätter. in genau dieser Reihenfolge:

PositionBlattnameVerwendete MarkerProbe JSON
1Items&=Items.ItemName, &=Items.Qty, &=Items.UnitPriceitems-data.json
2Employees&=Employees.EmployeeName, &=Employees.Department, &=Employees.Salaryemployees-data.json
3Products&=Products.ProductName, &=Products.Category, &=Products.Stockproducts-data.json

Um alle drei Tabellenblätter in einem einzigen Aufruf zu füllen, führen Sie die drei Tabellenblätter zusammen. JSON Nutzdaten in ein einzelnes Objekt zusammenfassen, dessen Schlüssel der obersten Ebene mit den Datenquellennamen der Markierungen übereinstimmen:

{
"Items": [ { "ItemName": "A123", "Qty": "55", "UnitPrice": "3.05" }, ... ],
"Employees": [ { "EmployeeName": "John Doe", "Department": "IT", "Salary": "5000" }, ... ],
"Products": [ { "ProductName": "Laptop", "Category": "Electronics", "Stock": "15" }, ... ]
}

Um nur das Mitarbeiterblatt zu füllen, übergeben Sie Worksheet Indexes = 2 im Aktionsaufruf. Die Positionen 1 und 3 bleiben unverändert. Um nur Artikel und Produkte zu befüllen, übergeben Sie 1,3Die

Umgang mit Formeln

Intelligente Marker arbeiten mit nativen Excel Formeln. Zwei wichtige Regeln:

  1. Statische Formeln überstehen die Expansion. Eine Formel wie =B2*C2 in einer Zeile, die Kopien in jede ausgefüllte Zeile erstellt, wobei die Zellbezüge wie üblich angepasst werden. Excel So geht's. Sie benötigen keine Markierung für die Formelzelle.
  2. Die Neuberechnung ist standardmäßig aktiviert. Der Calculate Formulas Diese Einstellung steuert, ob die Arbeitsmappe nach dem Datenabgleich neu berechnet wird. Lassen Sie sie unverändert. WAHR Sie erhalten eine Arbeitsmappe, deren Summen und Aggregate beim Öffnen sofort korrekt sind. Stellen Sie diese Option ein. FALSCH wenn Sie die Berechnung später in Ihrem eigenen Prozessablauf neu durchführen möchten und die Kosten vermeiden wollen.

Kultur- und Lokalisierungsformatierung

Der Culture & Language Settings Der Parameter akzeptiert einen Standardkulturnamen (en-US, fr-FR, de-DE, ja-JPusw.) und steuert, wie Zahlen, Datumsangaben und Währungen formatiert werden, wenn die Engine schreibt. JSON Werte in Excel Zellen. Stellen Sie es so ein, dass es dem Gebietsschema entspricht, das Ihre Empfänger erwarten. Der Standardwert ist en-USDie

Die zugehörigen Zitat Präfix zum Stil Die Einstellung trägt die Excel Das Flag "quote-prefix" wird auf formatierte Werte angewendet, sofern vorhanden, sodass Werte, die wie Zahlen aussehen, aber als Text angezeigt werden sollen (Kontonummern, Postleitzahlen mit führenden Nullen), auch als Text angezeigt werden.

Häufige Muster

Rechnungspositionen mit Summenzeile

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)

Wenn die Engine Zeile 5 für jedes Element erweitert, erweitert sich der SUMME-Bereich in Zeile 6 mit, da er unterhalb der Markierungszeilen liegt.

Vergleichstabelle nebeneinander (horizontal)

A1: Metric B1: &=Months.Name(horizontal)
A2: Revenue B2: &=Months.Revenue(horizontal)
A3: Expenses B3: &=Months.Expenses(horizontal)

Jeder Monat wird zu einer neuen Spalte rechts neben B anstatt zu einer neuen Zeile darunter.

Vorgedruckte Etiketten (ohne Zusatzkosten)

Wenn Sie 24 vorformatierte Beschriftungszellen auf einem Tabellenblatt haben und die Daten ohne Hinzufügen von Zeilen in diese Zellen fließen sollen:

&=Labels.Name(noadd)
&=Labels.Address(noadd)

Die Engine füllt die vorhandenen 24 Zeilen der Reihe nach aus und schneidet stillschweigend alle Datensätze ab, die nicht hineinpassen.

Kurzcheckliste

Marker beginnen immer mit &=
Die buchstäblichen zwei Zeichen &= in Zelle A1 (oder einer beliebigen anderen Zelle). Alle anderen Werte werden als normale Zellwerte behandelt.
JSON Die Schlüssel stimmen exakt mit den Markernamen überein.
Bei Objektnamen wird zwischen Groß- und Kleinschreibung unterschieden. Artikelname Die in der Vorlage enthaltene Information stimmt nicht überein. Artikelname im JSONDie
Ein Marker pro Zelle
Zwei Marker dürfen nicht in einer Zelle aneinandergereiht werden. Platzieren Sie sie in benachbarten Zellen, damit jeder Marker sauber expandiert.

Ähnliche Aktionen

Hilfe erhalten