Excel-Rechnungsvorlage in Power Automate: Aus einer SharePoint-Liste befüllen und jede Rechnung mit PDF4me als PDF/A archivieren

PDF4me Excel - Populate ist eine Power Automate-Aktion, die eine Excel-Rechnungsvorlage mit JSON-Daten füllt. Hierbei liefert ein neues SharePoint-Listenelement die Daten, Populate schreibt sie in die intelligenten Markierungen der Vorlage, und drei weitere PDF4me-Aktionen wandeln die Arbeitsmappe in eine komprimierte PDF/A-Rechnung um, die SharePoint automatisch speichert.
Sucht man nach einer Excel-Rechnungsvorlage, findet man auf der ersten Seite eine Galerie. Microsoft, Vertex42, QuickBooks und Square bieten alle eine ansprechend gestaltete, leere Arbeitsmappe an, und bei allen endet die Suche nach dem Download. Keine der Vorlagen erklärt, wie man sie ausfüllt. In der Praxis bedeutet das, dass man die Kundendaten in die Zellen kopiert, die Datei als PDF exportiert, sie benennt und in einem Ordner ablegt, Rechnung für Rechnung. Dieser Ablauf hingegen bietet den Vorteil, dass jeder in Excel eine Vorlage erstellen kann, und eliminiert alle weiteren Schritte nach dem Download.
Eine Zeile landet in einer SharePoint-Liste. Power Automate wandelt sie in JSON um, füllt damit eine Excel-Rechnungsvorlage, konvertiert die Arbeitsmappe in PDF, komprimiert sie, konvertiert sie in PDF/A-2b und speichert das Ergebnis in einem SharePoint-Ordner. Acht Aktionen, etwa 36 Sekunden pro Rechnung, und niemand muss Excel öffnen.
Warum-basierte Fragen und Antworten
Warum sollte man eine Excel-Arbeitsmappe als Rechnungsvorlage verwenden? Weil Rechnungen dort bereits erstellt werden. Spaltenbreiten, verbundene Zellen, Schriftarten und Rahmen sind in Excel festgelegt, sodass der Layoutverantwortliche Änderungen vornehmen kann, ohne den Workflow zu verändern oder HTML zu lernen. Die einzige Voraussetzung ist, dass jede Zelle mit einem Wert anstelle von Beispieltext eine intelligente Markierung enthält. Schritt 4 zeigt, wie diese aussieht.
Warum benötigt der Flow eine Compose Aktion? Weil eine SharePoint-Listenzeile flach ist, die Vorlage jedoch nicht. Die Liste speichert die beiden Positionen als zehn separate Spalten, Item1Description bis Item2TaxRate. Die Vorlage enthält eine Elementzeile, die sich für jeden Eintrag in einem Items Array wiederholt. Compose wandelt die zehn Spalten in ein Array mit zwei Elementen um, und dieses Array bewirkt die Wiederholung der Zeile.
Warum sollte man die Rechnung in PDF/A konvertieren, anstatt die .xlsx-Datei zu behalten? Eine Arbeitsmappe ist ein dynamisches Dokument. Jeder, der sie öffnet, kann Mengen ändern, und Formeln können auf verschiedenen Rechnern zu unterschiedlichen Gesamtsummen führen. Ein PDF korrigiert die tatsächlichen Rechnungsbeträge. PDF/A geht noch einen Schritt weiter und bettet alles ein, was zum Rendern der Seite benötigt wird, inklusive der Schriftarten. Genau das ist wichtig für ein Dokument, das in der Regel auch Jahre nach dem Versand noch lesbar sein muss.
Warum sollte die Vorlage in einer SharePoint-Bibliothek und nicht im Flow selbst gespeichert werden? Weil der Flow sie bei jeder Ausführung neu einliest. Ändern Sie das Logo, die Farben oder die Spaltenreihenfolge in SharePoint, und die nächste Rechnung verwendet das neue Layout, ohne dass der Flow bearbeitet werden muss. Der SharePoint-Versionsverlauf speichert außerdem alle früheren Kopien der Vorlage, sodass eine fehlerhafte Layoutänderung von dort aus rückgängig gemacht werden kann.
Was Sie erhalten
Eingabe: Eine SharePoint-Listenzeile mit Rechnungskopf, Kundendaten und zwei Positionen. Ausgabe: Eine komprimierte PDF/A-2b-Rechnung (ExcelArchived.pdf) im Ordner /Shared Documents/ArchivedExcel derselben Website.

Die Datenquelle: eine Listenzeile pro Rechnung, 22 Spalten breit. Die letzte Zeile, Morris - INV, ist diejenige, die die Beispielausgabe erzeugt hat.

ExcelArchived.pdf befindet sich im Ordner ArchivedExcel und wurde vom Flow-Konto wenige Sekunden nach dem Hinzufügen der Zeile erstellt.
Was Sie benötigen
- Power Automate. Power Automate öffnen. Ein Cloud-Flow mit Standardkonnektoren. Für SharePoint und die PDF4me-Konnektoren ist kein Premium-Plan erforderlich.
- PDF4me-API-Schlüssel. Holen Sie sich Ihren API-Schlüssel. Dieser Ablauf nutzt drei PDF4me-Verbindungen: PDF4me Excel, PDF4me Convert und PDF4me PDF. Ein Schlüssel autorisiert alle drei.
- Eine SharePoint-Website mit einer Liste, deren Spalten der Zuordnung Compose entsprechen, sowie eine Dokumentbibliothek für die Vorlage und die Ausgabe. Der erfasste Workflow verwendet die Liste Excel Template, den Ordner /Shared Documents/Excel Template für die Arbeitsmappe und /Shared Documents/ArchivedExcel für die Rechnungen.
- Die Excel-Rechnungsvorlage. pdf4me-excel-invoice-template.xlsx. Ein Tabellenblatt, intelligente Markierungen bereits vorhanden.
- Die Compose JSON-Datei. compose-rootdata.json. Die exakte RootData-Zuordnung aus Schritt 2, bereit zum Einfügen.
- Die fertige Rechnung. excel-archived-invoice.pdf. PDF/A-2b, genau das, was der erfasste Lauf erzeugt hat.
Laden Sie zunächst die Beispiele hoch. Laden Sie die Vorlage in Ihre SharePoint-Bibliothek hoch, fügen Sie den JSON-Code in die Aktion Compose ein und vergleichen Sie anschließend Ihren ersten Durchlauf mit der fertigen Rechnung. Öffnen Sie die Dokumenteigenschaften; dort sollte die PDF/A-2b-Deklaration angezeigt werden. Zu wissen, wie eine korrekte Ausgabe aussieht, ist der schnellste Weg, um festzustellen, ob Ihr Durchlauf erfolgreich war.
Der Flow auf einen Blick
- When an item is created (SharePoint-Trigger), wird die Liste mit dem Namen
Excel Templateüberwacht. - Compose erstellt das
RootDataJSON aus der neuen Zeile. - Get file content using path liest die Vorlage aus dem
/Shared Documents/Excel Template. - Excel - Populate (PDF4me Excel) fügt das JSON in Arbeitsblatt
1ein. - Convert to PDF (PDF4me Convert) erzeugt die Arbeitsmappe als
Invoice.pdf. - PDF - Compress (PDF4me PDF) mit Optimize Profile
Web. - PDF - Create PdfA (PDF4me PDF) mit Compliance
PdfA2b. - Create file (SharePoint) im Verzeichnis
/Shared Documents/ArchivedExcel.
Vollständige Ablaufübersicht

Der Lauf, der die Beispielrechnung erzeugt hat. Convert, Compress und Create PdfA dauert jeweils zehn bis elf Sekunden, alle anderen Vorgänge sind in weniger als einer Sekunde abgeschlossen, abgesehen vom zweisekündigen Schreibvorgang in SharePoint. Planen Sie etwa 36 Sekunden pro Rechnung ein.
Schritt 1: Wie kann ein Flow ausgelöst werden, wenn ein SharePoint-Listenelement erstellt wird?
Bisheriger Ablauf: noch nichts, dies ist der Auslöser.
Jede neue Zeile in der Liste entspricht einer Rechnung, der Auslöser ist also die Liste selbst.
- Erstellen Sie einen Automated cloud flow und wählen Sie SharePoint > When an item is created.
- Konfigurieren:
- Site Address:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - List Name:
Excel Template
- Site Address:
SharePoint-Triggerkonfiguration

Eine Liste, ein Auslöser. Die in der Liste integrierte Spalte Title enthält die Rechnungsnummer, weshalb im nächsten Schritt die Nummer dem Title zugeordnet wird.
Hinweis: Ausdrücke verwenden den internen Spaltennamen, nicht den in der Liste angezeigten Namen. Die Liste zeigt eine Spalte namens Date and time, der Trigger gibt sie jedoch als Dateandtime zurück. Dieser Name muss von Compose verwendet werden. Ein falscher Name führt nicht zu einem Fehler. Das ? in triggerBody()?['Dateandtime'] gibt stillschweigend null zurück, sodass die Rechnung einfach ein leeres Datum enthält.
Schritt 2: Wie wandelt man eine einfache SharePoint-Zeile in JSON für eine Excel-Vorlage um?
Bisheriger Ablauf: SharePoint-Trigger.
Die Vorlage erwartet eine verschachtelte Struktur: einen Rechnungskopf, einen Firmenblock, einen Kundenblock und eine Artikelliste. Die Listenzeile ist flach. Compose dient als Übersetzungsschicht zwischen den beiden.
- Data Operation > Compose.
- Fügen Sie dies in Inputs ein. Jeder Wert ist ein
triggerBody()?['<column>']-Ausdruck, der auf eine Listenspalte verweist.
{
"RootData": {
"Invoice": [
{
"Number": "@{triggerBody()?['Title']}",
"Date": "@{triggerBody()?['Dateandtime']}",
"DueDate": "@{triggerBody()?['DueDate']}",
"PONumber": "@{triggerBody()?['PONumber']}",
"PaymentTerms": "@{triggerBody()?['PaymentTerms']}"
}
],
"Company": [
{
"Email": "@{triggerBody()?['CompanyEmail']}",
"Address": "@{triggerBody()?['CompanyAddress']}"
}
],
"Customer": [
{
"Name": "@{triggerBody()?['CustomerName']}",
"Email": "@{triggerBody()?['CustomerEmail']}",
"Company": "@{triggerBody()?['CustomerCompany']}",
"Address": "@{triggerBody()?['CustomerAddress']}",
"CityStateZIP": "@{triggerBody()?['CustomerCityStateZIP']}"
}
],
"Items": [
{
"Description": "@{triggerBody()?['Item1Description']}",
"Qty": "@{triggerBody()?['Item1Qty']}",
"UnitPrice": "@{triggerBody()?['Item1UnitPrice']}",
"Discount": "@{triggerBody()?['Item1Discount']}",
"TaxRate": "@{triggerBody()?['Item1TaxRate']}"
},
{
"Description": "@{triggerBody()?['Item2Description']}",
"Qty": "@{triggerBody()?['Item2Qty']}",
"UnitPrice": "@{triggerBody()?['Item2UnitPrice']}",
"Discount": "@{triggerBody()?['Item2Discount']}",
"TaxRate": "@{triggerBody()?['Item2TaxRate']}"
}
]
}
}
Compose: Codeansicht

Die Spalten Invoice, Company und Customer sind jeweils ein Element. Die Spalte Items hat zwei Elemente, eines für jede Spalte Artikel in der Liste.
Wie jede Vorlagenzelle ihren Wert erhält
| Vorlagenzelle | Intelligenter Marker in der Zelle | Pfad Compose | SharePoint-Spalte |
|---|---|---|---|
| Invoice No. (B12) | &=RootData.Invoice.Number(noadd) | Invoice[0].Number | Title |
| Datum (B13) | &=RootData.Invoice.Date(noadd) | Invoice[0].Date | Dateandtime |
| Due Date (B14) | &=RootData.Invoice.DueDate(noadd) | Invoice[0].DueDate | DueDate |
| PO Number (B15) | &=RootData.Invoice.PONumber(noadd) | Invoice[0].PONumber | PONumber |
| Payment Terms (B16) | &=RootData.Invoice.PaymentTerms(noadd) | Invoice[0].PaymentTerms | PaymentTerms |
| E-Mail-Adresse und Anschrift (B4, B5) | &=RootData.Company.Email(noadd) and .Address | Company[0] | CompanyEmail, CompanyAddress |
| Customer (B6 bis B10) | &=RootData.Customer.Name(noadd) und vier weitere | Customer[0] | CustomerName zu CustomerCityStateZIP |
| Artikelzeile (A19 bis E19) | &=RootData.Items.Description, .Qty, .UnitPrice, .Discount, .TaxRate | Items[0] und Items[1] | Spalten Item1 und Item2 |
Der From (B3) ist reiner Text (PDF4me) und daher auf jeder Rechnung identisch. Ersetzen Sie ihn in der Vorlage durch Ihren Firmennamen.
Schritt 3: Woher liest der Workflow die Excel-Vorlage?
Bisheriger Ablauf: SharePoint-Trigger plus Compose.
Die Vorlage ist eine gewöhnliche Datei in einer Dokumentbibliothek. Der Workflow liest sie bei jeder Ausführung ein, sodass das Layout verwendet wird, das sich zu diesem Zeitpunkt in SharePoint befindet.
- SharePoint hinzufügen > Get file content using path.
- Konfigurieren:
- Site Address:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - File Path:
/Shared Documents/Excel Template/PDF4me_Excel_SharePoint_Template_.xlsx - Infer content type (erweitert):
Yes
- Site Address:
Get file content using path: Konfiguration

Die Liste und der Vorlagenordner heißen beide Excel Template. Es handelt sich um unterschiedliche Dinge: Das eine ist eine Liste, das andere ein Ordner in Shared Documents.
Schritt 4: Wie füllt die Funktion Excel - Populate eine Excel-Rechnungsvorlage aus?
Bisheriger Ablauf: SharePoint-Trigger plus Compose plus Get file content using path.
Dieser Schritt erledigt die Arbeit, die Ihnen die Vorlagengalerien überlassen. Excel - Populate nimmt die Arbeitsmappe und das JSON-Objekt, findet alle intelligenten Markierungen und schreibt den entsprechenden Wert in die jeweilige Zelle.
- Excel - Populate aus der PDF4me Excel Verbindung einfügen.
- Konfigurieren:
- File Content: das Body Token von Get file content using path
- JSON Data: die Ausgabe von Compose (das Token wird als Body angezeigt)
- File Name:
Populate.xlsx - Worksheet Indexes:
1
- Öffnen Sie Advanced parameters und legen Sie drei der vier Optionen fest:
- Strict JSON Strings:
Yes - Culture & Language Settings:
en-US - Calculate Formulas:
Yes
- Strict JSON Strings:
Excel - Populate: Konfiguration

Zwei Eingaben sind für die eigentliche Arbeit notwendig: die Vorlagenbytes von SharePoint und das JSON von Compose. Alles andere betrifft Formatierung und Gültigkeitsbereich.
Die Vorlage verwendet zwei Arten von Markern, und der Unterschied zwischen ihnen ist der ganze Clou:
- Kopfzeilenzellen wie Invoice No. enthalten
&=RootData.Invoice.Number(noadd). Der Modifikator(noadd)schreibt den Wert direkt an Ort und Stelle und fügt keine neue Zeile ein. - Die Elementzeile enthält
&=RootData.Items.Description,&=RootData.Items.Qtyusw., ohne weitere Angaben. Diese Zeile wird für jedes Element desItems-Arrays einmal geschrieben, sodass zwei Elemente zwei Zeilen erzeugen und ein drittes Element eine dritte Zeile erzeugt.
Die vollständige Grammatik, einschließlich Modifikatoren, verschachtelter Pfade und Formelverarbeitung, finden Sie in der Syntaxübersicht Excel Populate. Informationen zur Aktion Populate mit einer Dropbox-Vorlage und einer eingebetteten JSON-Nutzlast finden Sie unter Füllen einer Excel-Vorlage aus JSON in Power Automate.
Hinweis: Jeder Wert in der Compose wird als interpolierte Zeichenkette in Anführungszeichen gesetzt, sodass Mengen und Preise als Text an die Vorlage übergeben werden. Wenn Strict JSON Strings auf Yes gesetzt ist, bleiben sie Text, was korrekt gedruckt wird und für diese Vorlage völlig ausreicht. Wenn Sie eine Zeilensumme oder eine SUMME hinzufügen, setzen Sie die Option auf No, damit numerisch aussehende Zeichenketten in echte Zahlen umgewandelt werden. Andernfalls werden diese bei der SUMME-Funktion übersprungen, da Excel als Text gespeicherte Zahlen nicht addiert.
Schritt 5: Wie konvertiert man die ausgefüllte Arbeitsmappe in eine PDF-Datei?
Bisheriger Workflow: SharePoint-Trigger plus Compose plus Get file content using path plus Excel - Populate.
Die gefüllte Arbeitsmappe existiert nur innerhalb des Programmlaufs. Sie wird niemals als .xlsx-Datei gespeichert; sie wird direkt an den Konverter übergeben.
- Fügen Sie die Verbindung Convert to PDF von PDF4me Convert hinzu.
- Konfigurieren:
- File Content: Das Token Output File Content aus Excel - Populate
- File Name:
Invoice.pdf
Convert to PDF: Konfiguration

Output File Content ist die ausgefüllte Arbeitsmappe. Sie wird niemals als .xlsx-Datei in SharePoint gespeichert.
Hinweis: Der erfasste Workflow verwendet Invoice.pdf als File Name und die Konvertierung funktioniert trotzdem korrekt. Die Referenz Convert to PDF fragt jedoch nach der Dateiendung der Quelldatei. Daher ist Invoice.xlsx der sicherere Wert, wenn Sie Ihre eigene PDF-Datei erstellen.
Legen Sie das Seitenlayout in der Vorlage fest, nicht im Workflow. Convert to PDF übernimmt das Seitenlayout der Arbeitsmappe. Die Beispielvorlage ist etwas breiter als eine Letter Seite. Daher befinden sich die Spalten A bis D der erfassten Rechnung auf Seite eins und die Spalte Tax % nur auf Seite zwei. Öffnen Sie die Vorlage in Excel, gehen Sie zu Page Layout und wählen Sie Scale to Fit > Width die Option 1 page. Speichern Sie die Vorlage anschließend wieder in SharePoint. Jede nachfolgende Rechnung passt dann auf eine Seite.
Schritt 6: Wie komprimiert man die Rechnung und konvertiert sie in das PDF/A-Format?
Bisheriger Ablauf: Alles über Convert to PDF.
Die PDF4me PDF Verbindung führt zwei Aktionen aus: zuerst komprimieren, dann zertifizieren. Würde man diese Schritte umkehren, könnte die Komprimierung eine bereits konforme Datei überschreiben.
- PDF - Compress.
- File Content: das Body Token aus Convert to PDF
- File Name: die
headers/FileNameToken, das aus der vorherigen Aktion übernommen wurde - Optimize Profile:
Web
- PDF - Create PdfA.
- File Content: Der Body Token aus PDF - Compress
- File Name: das Token
headers/FileName - Compliance:
PdfA2b - Allow Upgrade:
Yes - Allow Downgrade:
Yes
Compress und Create PdfA: Parameter
| Aktion | Parameter | Hier verwendeter Wert | Was es kontrolliert |
|---|---|---|---|
| PDF - Compress | Optimize Profile | Web | Es geht um den Kompromiss zwischen Größe und Detailgenauigkeit. Eine Rechnung mit Text und Tabellen ohne Bilder bietet wenig Potenzial für Qualitätseinbußen. |
| PDF - Create PdfA | Compliance | PdfA2b | ISO 19005-2, Level B. Die Seite wird auch in Jahren noch auf jedem Anzeigegerät gleich dargestellt. |
| PDF - Create PdfA | Allow Upgrade | Yes | Lässt die Aktion auf einer höheren Ebene ablaufen, wenn die angeforderte Ebene nicht erreichbar ist. |
| PDF - Create PdfA | Allow Downgrade | Yes | Lässt es sich auf einem niedrigeren Niveau einpendeln, anstatt komplett zu scheitern. |

Compress arbeitet mit der konvertierten Rechnung, bevor irgendetwas zertifiziert wird.

Create PdfA ist die letzte Aktion, die das Dokument bearbeitet, und genau dort gehört sie hin.
Das gleiche Paar erledigt die gleiche Aufgabe für Dateien, die sich bereits in SharePoint befinden, bei der PDF-Archivierung in Power Automate mit einem unbeaufsichtigten SharePoint-Ordner.
Schritt 7: Wo wird die fertige Rechnung gespeichert?
Bisheriger Ablauf: Alles über Create PdfA.
Im letzten Schritt wird die zertifizierte Rechnung wieder in dieselbe SharePoint-Site geschrieben.
- SharePoint hinzufügen > Create file.
- Konfigurieren:
- Site Address:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - Folder Path:
/Shared Documents/ArchivedExcel - File Name:
ExcelArchived.pdf - File Content: Der Body Token aus PDF - Create PdfA
- Site Address:
SharePoint Create file: Konfiguration

Jede PDF4me-Aktion erzeugt ein Token namens Body. Die Bezeichnung allein verrät Ihnen also nicht, welche Aktion Sie ausgewählt haben. Bewegen Sie den Mauszeiger darüber oder überprüfen Sie den Code für body('PDF_-_Create_PdfA').
Ändern Sie dies, bevor Sie live gehen. ExcelArchived.pdf ist ein fester Name, sodass jedes neue Listenelement in dieselbe Datei geschrieben wird und der Ordner nie mehr als die neueste Rechnung enthält. Erstellen Sie den Namen stattdessen aus der Zeile. Die Listenelement-ID ist per Definition eindeutig, daher funktioniert concat('Invoice-', triggerBody()?['ID'], '.pdf') immer. Die Rechnungsnummer im Title funktioniert ebenfalls, solange sie keine Zeichen enthält, die SharePoint in Dateinamen ablehnt, wie z. B. Schrägstrich, Doppelpunkt, Sternchen oder Fragezeichen.
Führen Sie den Flow aus und überprüfen Sie ihn
- Save den Ablauf oben rechts.
- Fügen Sie der Liste einen neuen Eintrag mit dem Namen Excel Template hinzu und füllen Sie alle Spalten aus, die die Vorlage verwendet.
- Öffnen Sie den Ausführungsverlauf. Alle acht Aktionen sollten grün sein, wobei Convert, Compress und Create PdfA die meiste Zeit in Anspruch nehmen.
- Öffnen Sie
/Shared Documents/ArchivedExcelund prüfen Sie, ob die PDF-Datei vorhanden ist und ob unter Modified By das Konto des Flows angezeigt wird. - Öffnen Sie die Datei selbst und vergleichen Sie sie mit der Listezeile. Überprüfen Sie anschließend die Dokumenteigenschaften auf die PDF/A-Deklaration.
Die Rechnung aus dem erfassten Lauf ist 37.876 Byte groß. Sie enthält die Zeile Morris - INV: Kunde Morris Luma bei Invoicing.co, datiert auf den 01.09.2026 und fällig am 20.09.2026, mit zwei Positionen: PDF to Excel (Menge 60) und PDFA (Menge 45). Die XMP-Metadaten deklarieren pdfaid:part als 2 und pdfaid:conformance als B, was intern PDF/A-2b entspricht. Die Rechnung besteht aus zwei Seiten anstatt einer, da die Seiteneinrichtung in Schritt 5 erläutert wird.
Was genau haben Sie entwickelt? Eine Rechnungsverarbeitungs-Pipeline, bei der lediglich die Dateneingabe manuell erfolgt. Das Layout befindet sich in einer Excel-Datei, die jeder bearbeiten kann, die Daten liegen in einer Liste vor, und die Ausgabe ist eine in sich abgeschlossene, archivierbare PDF-Datei, die automatisch abgelegt wird. Das Konzept ist nicht an Power Automate gebunden: Es lässt sich auch auf Make, Zapier und n8n übertragen, überall dort, wo die PDF4me Excel und PDF/A verfügbar sind.
Häufige Variationen, die Sie hinzufügen können, ohne den Aufbau zu wiederholen
Wie sich dies im Vergleich zu anderen Methoden der Rechnungserstellung verhält
Jede Zeile beschreibt die Alternative. Die letzte Zeile stellt diesen Ablauf dar.
| Vergleich | Wer kann das Layout ändern? | Wie die Vorlage ausgefüllt wird | Archivformat |
|---|---|---|---|
| Manuell ausgefüllte Excel-Vorlage im Vergleich zu diesem Ablauf | Jeder, der Excel verwendet | Kopieren und Einfügen, eine Rechnung nach der anderen | Es handelt sich um eine einfache PDF-Datei, sofern nicht die Exportoption PDF/A ausgewählt ist |
| Excel VBA-Makro im Vergleich zu diesem Ablauf | Wer auch immer das Makro aufrechterhält | Automatisch, auf einem Desktop-PC mit geöffneter Arbeitsmappe | Einfaches PDF, es sei denn, der Export ist für PDF/A eingerichtet |
| HTML-Vorlage plus HTML in PDF Convert vs. dieser Ablauf | Jemand, der sich mit HTML und CSS auskennt | Automatisch, in der Cloud | |
| Dieser Fluss | Jeder, der Excel verwendet | Automatisch, bei jedem neuen Listeneintrag | PDF/A-2b |
Der entscheidende Unterschied: Die ersten beiden Varianten behalten das Layout in Excel bei, binden aber weiterhin eine Person in den Prozess ein, während die dritte Variante die Person entfernt, das Layout aber in den Code verlagert. Nur dieser Ablauf vereint beides.
Häufig gestellte Fragen
Gibt es eine Rechnungsvorlage in Excel?
Ja. Excel enthält Rechnungsvorlagen: In der Desktop-App wählen Sie File > New und suchen nach Rechnung. Weitere Vorlagen finden Sie in der Online-Vorlagengalerie von Microsoft. Diese Vorlagen sind für die manuelle Bearbeitung vorgesehen.
Die in diesem Beitrag verwendete Vorlage ist für einen anderen Zweck konzipiert. Ihre Wertzellen enthalten intelligente Markierungen anstelle von Beispieltext, sodass sie von einem Workflow ausgefüllt werden können. Sie können jede beliebige Rechnungsvorlage auf dieselbe Weise konvertieren: Behalten Sie das Design bei und ersetzen Sie jeden Wert durch eine Markierung wie z. B. &=RootData.Invoice.Number(noadd).
Wie erstellt man eine Rechnung aus Excel-Daten?
Die Daten werden in Zeilen angeordnet, das Layout in einer Vorlage gespeichert, und die Zusammenführung erfolgt automatisch. In Excel selbst ist das beispielsweise ein Word-Serienbrief oder ein VBA-Makro, die beide auf dem Rechner eines Benutzers ausgeführt werden.
In diesem Ablauf befinden sich die Zeilen in einer SharePoint-Liste. Compose wandelt eine Zeile in JSON um, und Excel - Populate fügt sie in die Vorlage ein. Wenn Ihre Daten bereits als Excel-Tabelle in OneDrive oder SharePoint vorliegen, kann die Aktion List rows present in a table des Excel Online (Business)-Connectors dieselbe Compose innerhalb einer Apply to each-Schleife verwenden, wobei items('Apply_to_each') anstelle von triggerBody() verwendet wird. Alles ab Schritt 3 bleibt unverändert.
Wie kann man Rechnungen in Excel automatisieren?
Die Automatisierung einer Rechnung bedeutet, dass jeder einzelne Arbeitsschritt entfällt: Eingabe der Werte, Export als PDF, Benennung der Datei und Ablage. Die Vorlage selbst bleibt eine normale Excel-Datei.
Dieser Workflow entfernt alle vier Eingaben. Die Listenzeile ist die einzige Eingabe. Die Vorlage wird mit Excel - Populate befüllt, mit Convert to PDF exportiert, mit PDF - Create PdfA archiviert und mit Create file abgelegt. Sobald der Dateiname aus der Zeile generiert wurde (siehe Schritt 7), sind keine manuellen Schritte mehr erforderlich.
Kann Power Automate Excel-Tabellen in PDF konvertieren?
Ja. In einem Cloud-Flow wandelt die Aktion Convert file des OneDrive for Business Connectors eine .xlsx-Datei in eine PDF-Datei um, jedoch nur für Dateien, die in OneDrive gespeichert sind. Daher kopieren SharePoint-Flows die Arbeitsmappe oft zuerst dorthin und löschen sie anschließend.
PDF4me Convert to PDF übernimmt den Dateiinhalt direkt aus vorherigen Aktionen. Daher wird die befüllte Arbeitsmappe in diesem Workflow nirgendwo gespeichert: Sie wird direkt von Excel - Populate, und die einzige Datei, die in SharePoint landet, ist die fertige PDF/A-Rechnung.
Fehlerbehebung
Überprüfen Sie den Spaltennamen im Compose Ausdruck. Er muss dem internen Namen Dateandtime entsprechen und darf nicht Date and time lauten. Das Fragezeichen in triggerBody()?['Dateandtime'] bewirkt, dass ein falscher Name zu null anstatt zu einem Fehler führt. Dadurch bleibt der Lauf erfolgreich und die Zelle leer. Ist der Name korrekt, überprüfen Sie den JSON-Pfad anhand der Markierung: RootData, dann Customer, dann Name (in beiden Fällen identisch geschrieben).
Die Vorlage ist breiter als eine gedruckte Seite. Convert to PDF erfolgt gemäß der Seitenstruktur der Arbeitsmappe. Passen Sie dies dort an: Page Layout > Scale to Fit > Breite: 1 page. Speichern Sie die Vorlage anschließend wieder in SharePoint. Beim nächsten Durchlauf wird sie dann auf eine Seite genau angepasst.
Der File Name Create file ist der feste Text ExcelArchived.pdf, sodass bei jedem Durchlauf derselbe Name verwendet wird. Wie in Schritt 7 beschrieben, sollte der Dateiname pro Zeile anhand der Listenelement-ID eindeutig sein.
Create file liest aus PDF - Compress oder Convert to PDF anstatt aus PDF - Create PdfA. Alle drei Tokens sind mit Body gekennzeichnet, daher ist der Fehler leicht zu machen, und im Ausführungsverlauf ist nichts Auffälliges zu erkennen. Stellen Sie sicher, dass der Ausdruck body('PDF_-_Create_PdfA') lautet.
Nächste Schritte
Excel Populate in Power Automate einfügen
Syntax für intelligente Marker
PDF/A in Power Automate erstellen
Holen Sie sich Ihren API-Schlüssel
Das gleiche achtstufige Muster (Zeilen auflisten, in JSON umwandeln, Vorlage abrufen, Daten einfügen, konvertieren, komprimieren, zertifizieren, speichern) verarbeitet jedes Dokument, das als Tabellenkalkulation beginnt: Angebote, Lieferscheine, Kontoauszüge und Zertifikate.