Passa al contenuto principale

Modello di fattura Excel in Power Automate: compilalo da un elenco di SharePoint e archivia ogni fattura come PDF/A con PDF4me

· 33 minuti di lettura
SEO and Content Writer

PDF4me Excel - Populate è un'azione di Power Automate che compila un modello di fattura Excel con dati JSON. In questo caso, un nuovo elemento di elenco di SharePoint fornisce i dati, Populate li scrive negli smart marker del modello e altre tre azioni di PDF4me trasformano la cartella di lavoro in una fattura PDF/A compressa che SharePoint archivia automaticamente.

Cercando un modello di fattura in Excel, la prima pagina dei risultati è una galleria di immagini. Microsoft, Vertex42, QuickBooks e Square offrono tutti una cartella di lavoro vuota ben progettata, e ognuno di essi si ferma al download. Nessuno di questi spiega come compilare il modello, il che in pratica significa che qualcuno deve copiare i dati del cliente nelle celle, esportare in PDF, rinominare il file e inserirlo in una cartella, una fattura alla volta. Questo flusso mantiene l'aspetto corretto di quei modelli, ovvero un file che chiunque può creare in Excel, eliminando tutti i passaggi successivi al download.

Il flusso in sintesi
1. When an item is created
Trigger di SharePoint sull'elenco denominato Excel Template. Ogni nuova riga corrisponde a una fattura.
2. Compose
Rimodella la riga dell'elenco piatto nel JSON RootData nidificato previsto dal modello.
3. Get file content using path
Legge il modello di fattura Excel dalla Shared Documents a ogni esecuzione.
4. Excel - Populate
PDF4me Excel. Scrive il JSON negli smart marker del foglio 1.
5. Convert to PDF
PDF4me Convert. Converte la cartella di lavoro compilata in un file Invoice.pdf.
6. PDF - Compress
Optimize Profile Web. Viene eseguito prima dell'applicazione dello standard di archiviazione.
7. PDF - Create PdfA
Compliance PdfA2b. Il passaggio che trasforma una fattura in un documento ufficiale.
8. Create file
SharePoint scrive il ExcelArchived.pdf nella cartella /Shared Documents/ArchivedExcel.
La versione breve

Una riga viene inserita in un elenco di SharePoint. Power Automate la trasforma in formato JSON, la utilizza per compilare un modello di fattura Excel, converte la cartella di lavoro in PDF, la comprime, la converte in PDF/A-2b e salva il risultato in una cartella di SharePoint. Otto operazioni, circa trentasei secondi per fattura, e nessuno apre Excel.

Domande e risposte basate sul perché

Perché utilizzare una cartella di lavoro di Excel come modello per le fatture? Perché è lì che vengono già progettate le fatture. La larghezza delle colonne, le celle unite, i caratteri e i bordi sono tutti impostati in Excel, quindi chi si occupa del layout può modificarlo senza dover intervenire sul flusso o imparare l'HTML. L'unico requisito è che ogni cella contenente un valore abbia un indicatore intelligente anziché un testo di esempio, e il passaggio 4 mostra esattamente come appaiono.

Perché il flusso necessita di un'azione Compose? Perché una riga di un elenco di SharePoint è piatta, mentre il modello non lo è. L'elenco memorizza le due voci come dieci colonne separate, da Item1Description a Item2TaxRate. Il modello ha una riga di elementi che si ripete per ogni voce in un array Items. Compose è il punto in cui dieci colonne diventano un array di due elementi, ed è questo array che fa sì che la riga si ripeta.

Perché convertire la fattura in PDF/A invece di mantenere il file .xlsx? Un foglio di calcolo è un documento dinamico. Chiunque lo apra può modificare una quantità e una formula può ricalcolare il totale su un computer diverso. Un PDF, invece, fissa i dati effettivamente fatturati. Il PDF/A fa un ulteriore passo avanti, incorporando tutto il necessario per la visualizzazione della pagina, inclusi i font, proprio ciò che serve per un documento che solitamente deve rimanere leggibile per anni dopo l'invio.

Perché conservare il modello in una libreria di SharePoint anziché all'interno del flusso? Perché il flusso lo legge in modo aggiornato a ogni esecuzione. Modificando il logo, i colori o l'ordine delle colonne in SharePoint, la fattura successiva utilizzerà il nuovo layout senza che nessuno debba modificare il flusso. La cronologia delle versioni di SharePoint conserva inoltre tutte le copie precedenti del modello, quindi una modifica errata del layout può essere annullata da lì.


Cosa riceverai

Input: una riga di un elenco di SharePoint contenente l'intestazione della fattura, i dettagli del cliente e due voci. Output: una fattura compressa in formato PDF/A-2b, ExcelArchived.pdf, nella cartella /Shared Documents/ArchivedExcel dello stesso sito.

Elenco di SharePoint denominato Modello Excel con quattro righe di fattura, Shyam Prasad-INV, Sarah Brown - INV 01, Larry Wheels - 01 e Morris - INV, e colonne Titolo, Data e ora, Data di scadenza, Numero PON, Termini di pagamento, Email aziendale, Indirizzo aziendale, Nome cliente, Email cliente, Azienda cliente, Indirizzo cliente, Città, Stato, CAP cliente, quindi Descrizione, Quantità, Prezzo unitario, Sconto e Aliquota fiscale per Articolo 1 e Articolo 2

Fonte dei dati: una riga di elenco per ogni fattura, con ventidue colonne. L'ultima riga, Morris - INV, è quella che ha generato l'output di esempio.

La raccolta Documenti di SharePoint è aperta nella cartella ArchivedExcel e mostra il file ExcelArchived.pdf modificato pochi secondi fa dall'account Pdf4me Flow.

ExcelArchived.pdf si trova nella cartella ArchivedExcel ed è stato creato dall'account di flusso pochi secondi dopo l'aggiunta della riga.


Di cosa hai bisogno

  • Power Automate. Apri Power Automate. Un flusso cloud su connettori standard. SharePoint e i connettori PDF4me non richiedono un piano premium.
  • Chiave API di PDF4me. Ottieni la tua chiave API. Questo flusso utilizza tre connessioni PDF4me: PDF4me Excel, PDF4me Convert e PDF4me PDF. Una sola chiave autorizza tutte e tre.
  • Un sito SharePoint con un elenco le cui colonne corrispondono alla mappatura Compose, oltre a una raccolta documenti per il modello e l'output. Il flusso acquisito utilizza l'elenco Excel Template, la cartella /Shared Documents/Excel Template per la cartella di lavoro e /Shared Documents/ArchivedExcel per le fatture.
  • Modello di fattura Excel pdf4me-excel-invoice-template.xlsx. Un unico foglio, con indicatori intelligenti già inseriti.
  • Il Compose JSON. compose-rootdata.json. La mappatura RootData esatta del passaggio 2, pronta per essere incollata.
  • La fattura finale. excel-archived-invoice.pdf. PDF/A-2b, esattamente ciò che ha prodotto l'esecuzione acquisita.

Scaricate prima gli esempi. Caricate il modello nella vostra libreria di SharePoint, incollate il codice JSON nell'azione Compose, quindi confrontate la prima esecuzione con la fattura finale. Aprite le proprietà del documento e dovreste vedere la dicitura PDF/A-2b. Sapere che aspetto ha un output corretto è il modo più rapido per capire se la vostra esecuzione ha funzionato correttamente.


Il flusso in sintesi

  1. When an item is created (trigger di SharePoint), viene monitorato l'elenco denominato Excel Template.
  2. Compose crea il JSON RootData a partire dalla nuova riga.
  3. Get file content using path che legge il modello da /Shared Documents/Excel Template.
  4. Excel - Populate (PDF4me Excel) unisce il JSON nel foglio di lavoro 1.
  5. La Convert to PDF (PDF4me Convert) converte la cartella di lavoro in un file chiamato Invoice.pdf.
  6. PDF - Compress (PDF4me PDF) con Optimize Profile Web.
  7. PDF - Create PdfA (PDF4me PDF) con Compliance PdfA2b.
  8. Create file (SharePoint) nella cartella /Shared Documents/ArchivedExcel.

Panoramica completa del flusso

Cronologia di esecuzione di Power Automate che mostra otto azioni completate con successo in ordine: Creazione di un elemento a 0,3 secondi, Composizione a 0 secondi, Recupero del contenuto del file tramite percorso a 0,5 secondi, Popolamento di Excel a 0,8 secondi, Conversione in PDF a 10 secondi, Compressione PDF a 11 secondi, Creazione di PDF in formato PDFA a 11 secondi e Creazione di un file a 2 secondi.

L'esecuzione che ha generato la fattura di esempio. Le Convert, Compress e Create PdfA richiedono dai dieci agli undici secondi ciascuna, mentre tutte le altre operazioni si concludono in meno di un secondo, ad eccezione della scrittura su SharePoint che richiede due secondi. Calcola circa trentasei secondi per fattura.


Passaggio 1: Come si attiva un flusso quando viene creato un elemento di un elenco di SharePoint?

Flusso finora: ancora niente, questo è il trigger.

Ogni nuova riga nell'elenco corrisponde a una fattura, quindi l'elemento scatenante è l'elenco stesso.

  1. Crea un Automated cloud flow e seleziona SharePoint > When an item is created.
  2. Configura:
    • Site Address: PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints
    • List Name: Excel Template

configurazione del trigger di SharePoint

SharePoint Quando viene creato un elemento, viene attivato un pannello con Indirizzo sito impostato su PDF4me Sharepoints all'indirizzo ynoox1.sharepoint.com/sites/PDF4meSharepoints e Nome elenco impostato su Modello Excel, parametri avanzati che mostrano 0 di 1, connesso a SharePoint

Un elenco, un trigger. La colonna Title integrata nell'elenco contiene il numero di fattura, motivo per cui il passaggio successivo associa Numero a Title.

Suggerimento: le espressioni utilizzano il nome interno di una colonna, non il nome visualizzato nell'elenco. L'elenco mostra una colonna chiamata Date and time, ma il trigger la restituisce come Dateandtime, ed è questo il nome che Compose deve utilizzare. Un nome errato non causa l'interruzione dell'esecuzione. Il punto ? in triggerBody()?['Dateandtime'] restituisce silenziosamente null, quindi la fattura viene semplicemente generata con una data vuota.


Passaggio 2: Come si trasforma una semplice riga di SharePoint in un file JSON per un modello Excel?

Flusso finora: trigger di SharePoint.

Il template prevede una struttura annidata: un'intestazione di fattura, un blocco azienda, un blocco cliente e un elenco di articoli. La riga dell'elenco è piatta. Compose funge da livello di traduzione tra i due.

  1. Aggiungi Data Operation > Compose.
  2. Incolla questo in Inputs. Ogni valore è un'espressione triggerBody()?['<column>'] che punta a una colonna dell'elenco.
{
"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: visualizzazione del codice

Azione di composizione di Power Automate nella visualizzazione codice con input RootData contenenti array di Fattura, Azienda, Cliente e Articoli, ogni valore mappato a un'espressione triggerBody come Titolo, Data e ora, Data di scadenza, Numero di lotto, Termini di pagamento, Email aziendale, Nome cliente e Descrizione articolo1 fino a Tasso d'imposta articolo2

Invoice, Company e Customer sono array con un solo elemento. Items ha due elementi, uno per ogni set di colonne di articoli nell'elenco.

Come ogni cella del modello ottiene il suo valore

cella modelloMarcatore intelligente nella cellulaCompose percorsocolonna SharePoint
Invoice No. (B12)&=RootData.Invoice.Number(noadd)Invoice[0].NumberTitle
Data (B13)&=RootData.Invoice.Date(noadd)Invoice[0].DateDateandtime
Due Date (B14)&=RootData.Invoice.DueDate(noadd)Invoice[0].DueDateDueDate
PO Number (B15)&=RootData.Invoice.PONumber(noadd)Invoice[0].PONumberPONumber
Payment Terms (B16)&=RootData.Invoice.PaymentTerms(noadd)Invoice[0].PaymentTermsPaymentTerms
Email e indirizzo (B4, B5)&=RootData.Company.Email(noadd) e .AddressCompany[0]CompanyEmail, CompanyAddress
Blocco Customer (da B6 a B10)&=RootData.Customer.Name(noadd) e altri quattroCustomer[0]CustomerName a CustomerCityStateZIP
Riga articolo (da A19 a E19)&=RootData.Items.Description, .Qty, .UnitPrice, .Discount, .TaxRateItems[0] e Items[1]Colonne Item1 e Item2

Il campo From (B3) è in formato testo semplice, PDF4me, quindi è identico su tutte le fatture. Sostituiscilo con il nome della tua azienda nel modello.


Passaggio 3: Da dove il flusso legge il modello Excel?

Flusso finora: trigger di SharePoint più Compose.

Il modello è un normale file presente in una raccolta documenti. Il flusso lo legge a ogni esecuzione, quindi viene utilizzato il layout presente in SharePoint in quel momento.

  1. Aggiungi SharePoint > Get file content using path.
  2. Configura:
    • Site Address: PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints
    • File Path: /Shared Documents/Excel Template/PDF4me_Excel_SharePoint_Template_.xlsx
    • Infer content type (avanzato): Yes

Get file content using path: configurazione

SharePoint Ottieni il contenuto del file utilizzando l'azione percorso con Indirizzo sito PDF4me Sharepoints, Percorso file /Documenti condivisi/Modello Excel/PDF4me_Excel_SharePoint_Template_.xlsx e il parametro avanzato Deduzione tipo di contenuto impostato su Sì, connesso a SharePoint

Sia l'elenco che la cartella dei modelli si chiamano Excel Template. Si tratta di due cose diverse: una è un elenco, l'altra è una cartella in Shared Documents.


Passaggio 4: Come fa Excel - Populate a compilare un modello di fattura Excel?

Flusso finora: trigger di SharePoint più Compose più Get file content using path.

Questo è il passaggio che svolge il lavoro che le gallerie di modelli lasciano a te. Excel - Populate prende la cartella di lavoro e il JSON, trova ogni marcatore intelligente e scrive il valore corrispondente nella sua cella.

  1. Aggiungi Excel - Populate utilizzando la connessione PDF4me Excel.
  2. Configura:
    • File Content: il token Body da Get file content using path
    • JSON Data: l'output di Compose (il token viene visualizzato come Body)
    • File Name: Populate.xlsx
    • Worksheet Indexes: 1
  3. Apri Advanced parameters e seleziona tre delle quattro opzioni:
    • Strict JSON Strings: Yes
    • Culture & Language Settings: en-US
    • Calculate Formulas: Yes

Excel - Populate: configurazione

Azione PDF4me Excel Populate con Contenuto file impostato sul token Corpo da SharePoint, Dati JSON impostati sul token Corpo da Compose, Nome file Populate.xlsx, Indici foglio di lavoro 1 e parametri avanzati Stringhe JSON rigorose Sì, Impostazioni cultura e lingua en-US e Calcola formule Sì, connesso a PDF4me Excel

Il lavoro viene svolto da due input: i byte del modello provenienti da SharePoint e il JSON generato da Compose. Tutto il resto riguarda la formattazione e l'ambito.

Il modello utilizza due tipi di marcatori, e la differenza tra di essi è tutto il trucco:

  • Le celle di intestazione come Invoice No. contengono &=RootData.Invoice.Number(noadd). Il modificatore (noadd) scrive il valore direttamente nella posizione e non inserisce mai una riga.
  • La riga dell'elemento contiene &=RootData.Items.Description, &=RootData.Items.Qty e così via, senza alcun modificatore. Tale riga viene scritta una volta per ogni elemento dell'array Items, quindi due elementi producono due righe e un terzo elemento ne produrrebbe una terza.

La grammatica completa, inclusi i modificatori, i percorsi annidati e la gestione delle formule, è disponibile nella panoramica della sintassi Excel Populate. Per l'azione Populate da sola, con un modello Dropbox e un payload JSON incorporato, vedere come popolare un modello Excel da JSON in Power Automate.

Suggerimento. Ogni valore nel Compose è racchiuso tra virgolette come interpolazione di stringa, quindi quantità e prezzi vengono inviati al modello come testo. Con l' Strict JSON Strings impostata su Yes, rimangono testo, che viene stampato correttamente ed è tutto ciò di cui questo modello ha bisogno. Se si aggiunge un totale di riga o una SOMMA, impostarla su No in modo che le stringhe che sembrano numeriche vengano visualizzate come numeri reali. Altrimenti, la funzione SOMMA le ignora, perché Excel non somma i numeri memorizzati come testo.


Passaggio 5: Come si converte una cartella di lavoro compilata in formato PDF?

Flusso finora: trigger di SharePoint più Compose più Get file content using path più Excel - Populate.

La cartella di lavoro compilata esiste solo all'interno dell'esecuzione. Non viene mai salvata come file .xlsx; viene inviata direttamente al convertitore.

  1. Aggiungi la Convert to PDF dalla connessione PDF4me Convert.
  2. Configura:
    • File Content: il token Output File Content da Excel - Populate
    • File Name: Invoice.pdf

Convert to PDF: configurazione

Azione PDF4me Converti in PDF con Contenuto file impostato sul token Contenuto file di output da Excel Populate e Nome file impostato su Invoice.pdf, connesso a PDF4me Convert

Output File Content è la cartella di lavoro compilata. Non viene mai caricato su SharePoint come file .xlsx.

Suggerimento: il flusso catturato passa Invoice.pdf come File Name e la conversione avviene comunque correttamente. Tuttavia, la funzione Convert to PDF richiede l'estensione del file sorgente, quindi Invoice.xlsx è il valore più sicuro quando si crea il proprio flusso.

Imposta il layout di pagina nel modello, non nel flusso. Convert to PDF segue l'impostazione di pagina della cartella di lavoro. Il modello di esempio è leggermente più largo di una pagina Letter, quindi la fattura acquisita ha le colonne da A a D sulla prima pagina e solo la colonna Tax % sulla seconda pagina. Apri il modello in Excel, vai a Page Layout e imposta Scale to Fit > Width a 1 page, quindi salvalo nuovamente in SharePoint. Tutte le fatture successive si adatteranno a una pagina in larghezza.


Passaggio 6: Come si comprime la fattura e la si converte in PDF/A?

Flusso finora: tutto tramite Convert to PDF.

Due operazioni dalla connessione PDF4me PDF: prima la compressione e poi la certificazione. Invertendole, la compressione sovrascriverebbe un file che è già stato reso conforme.

  1. Aggiungi PDF - Compress.
    • File Content: il token Body da Convert to PDF
    • File Name: il token headers/FileName ereditato dall'azione precedente
    • Optimize Profile: Web
  2. Aggiungi PDF - Create PdfA.
    • File Content: il token Body dal PDF - Compress
    • File Name: il token headers/FileName
    • Compliance: PdfA2b
    • Allow Upgrade: Yes
    • Allow Downgrade: Yes

Compress e Create PdfA: parametri

AzioneParametroValore utilizzato quiCiò che controlla
PDF - CompressOptimize ProfileWebIl compromesso tra dimensioni e fedeltà. Una fattura composta solo da testo e tabelle, senza immagini, ha ben poco che possa comprometterne la qualità.
PDF - Create PdfACompliancePdfA2bISO 19005-2, livello B. La pagina viene visualizzata allo stesso modo su qualsiasi visualizzatore, anche tra molti anni.
PDF - Create PdfAAllow UpgradeYesConsente di inoltrare l'azione a un livello superiore qualora quello richiesto non sia raggiungibile.
PDF - Create PdfAAllow DowngradeYesPermette che si stabilizzi a un livello inferiore invece di fallire completamente.
Azione di compressione PDF4me con Contenuto file impostato sul token Body, Nome file impostato sul token FileName delle intestazioni e Profilo di ottimizzazione impostato su Web, connessa a PDF4me PDF

Compress viene eseguita sulla fattura convertita, prima che qualsiasi documento venga certificato.

Azione PDF4me PDF Crea PdfA con Contenuto file impostato sul token Body, Nome file impostato sul token FileName delle intestazioni, Conformità PdfA2b, Consenti aggiornamento Sì e Consenti downgrade Sì, connesso a PDF4me PDF

Create PdfA è l'ultima operazione a modificare il documento, ed è esattamente dove dovrebbe essere.

La stessa coppia esegue la stessa operazione sui file già presenti in SharePoint nell'archiviazione PDF in Power Automate con una cartella SharePoint non presidiata.


Passaggio 7: Dove viene salvata la fattura finale?

Flusso finora: tutto tramite Create PdfA.

L'ultima operazione consiste nel riscrivere la fattura certificata nello stesso sito SharePoint.

  1. Aggiungi SharePoint > Create file.
  2. Configura:
    • Site Address: PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints
    • Folder Path: /Shared Documents/ArchivedExcel
    • File Name: ExcelArchived.pdf
    • File Content: il token Body dal PDF - Create PdfA

SharePoint Create file: configurazione

Azione di creazione file SharePoint con indirizzo del sito PDF4me Sharepoints, percorso cartella /Shared Documents/ArchivedExcel, nome file ExcelArchived.pdf e contenuto file impostato sul token Body da PDF Create PdfA, connesso a SharePoint

Ogni azione di PDF4me genera un token chiamato Body, quindi la sola etichetta non indica quale hai scelto. Passa il mouse sopra o controlla la visualizzazione del codice per body('PDF_-_Create_PdfA').

Modificate questa impostazione prima di pubblicare. ExcelArchived.pdf è un nome fisso, quindi ogni nuovo elemento dell'elenco scrive nello stesso file e la cartella non contiene mai più dell'ultima fattura. Create invece il nome a partire dalla riga. L'ID dell'elemento dell'elenco è univoco per definizione, quindi concat('Invoice-', triggerBody()?['ID'], '.pdf') funziona sempre. Anche il numero di fattura nel Title funziona, purché non contenga caratteri che SharePoint rifiuta nei nomi dei file, come la barra, i due punti, l'asterisco o il punto interrogativo.


Esegui il flusso e verifica

  1. Save il flusso in alto a destra.
  2. Aggiungi un nuovo elemento all'elenco denominato Excel Template e compila tutte le colonne utilizzate dal modello.
  3. Apri la cronologia delle esecuzioni. Tutte e otto le azioni dovrebbero essere visualizzate in verde, con Convert, Compress e Create PdfA che richiedono la maggior parte del tempo.
  4. Apri la cartella /Shared Documents/ArchivedExcel e verifica che il file PDF sia presente, con Modified By indica l'account del flusso.
  5. Apri il file e confrontalo con la riga dell'elenco, quindi controlla le proprietà del documento per verificare la presenza della dichiarazione PDF/A.

La fattura acquisita è di 37.876 byte. Rappresenta la riga Morris - INV: cliente Morris Luma presso Invoicing.co, datata 2026-09-01 e con scadenza 2026-09-20, con due voci, PDF to Excel (quantità 60) e PDFA (quantità 45). I suoi metadati XMP dichiarano pdfaid:part come 2 e pdfaid:conformance come B, che corrisponde a PDF/A-2b visto dall'interno. È composta da due pagine anziché una, per il motivo di impostazione della pagina descritto al punto 5.

Cosa hai effettivamente creato? Un sistema di fatturazione in cui l'unico passaggio manuale è l'inserimento dei dati. Il layout si trova in un file Excel modificabile da chiunque, i dati sono in un elenco e l'output è un file PDF archiviabile e autonomo, automaticamente archiviato senza che nessuno debba decidere di farlo. Il modello non è vincolato a Power Automate: è compatibile con Make, Zapier e n8n, ovunque siano disponibili le azioni PDF4me Excel.


Varianti comuni che puoi aggiungere senza dover ricostruire

Invia la fattura al cliente via e-mail
Aggiungi l'opzione Send an email (V2) Office 365 Outlook dopo Create file. Inserisci la colonna CustomerEmail nel campo A e allega il Body dell'output di PDF - Create PdfA, in modo che il cliente riceva lo stesso file PDF/A che è stato archiviato.
Formatta le date nel modo in cui le leggono i tuoi clienti
L'esempio stampa 2026-09-01 perché è così che il trigger restituisce una data. Racchiudi le espressioni Date e DueDate nella funzione Compose con formatDateTime e un modello come 'dd MMM yyyy'.
Somma i totali di ogni riga e il totale complessivo
Inserisci le formule nel modello, imposta Strict JSON Strings su No in modo che quantità e prezzi vengano visualizzati come numeri e lascia Calculate Formulas su Sì in modo che i totali siano già calcolati prima della conversione.
Verifica lo standard invece di presumerlo
Aggiungi Validate PDFA dopo Create PdfA e dirama il processo in base al risultato. In questo modo, una conversione non riuscita verrà visualizzata nella cronologia delle esecuzioni anziché nel registro di controllo.

Come si confronta questo con altri metodi di emissione delle fatture?

Ogni riga descrive l'alternativa. L'ultima riga rappresenta questo flusso.

ConfrontoChi può modificare il layout?Come viene compilato il modelloFormato di archiviazione
Modello Excel compilato manualmente rispetto a questo flussoChiunque utilizzi ExcelCopia e incolla, una fattura alla voltaPDF semplice, a meno che non si imposti l'opzione di esportazione PDF/A
Macro VBA di Excel rispetto a questo flussoChiunque mantenga la macroAutomaticamente, su un desktop con la cartella di lavoro apertaPDF semplice a meno che l'esportazione non sia impostata per PDF/A
Modello HTML più Convert HTML in PDF rispetto a questo flussoUna persona che abbia familiarità con HTML e CSSAutomaticamente, nel cloudPDF
Questo flussoChiunque utilizzi ExcelAutomaticamente, ad ogni nuovo elemento dell'elencoPDF/A-2b

La distinzione fondamentale è questa: i primi due mantengono il layout in Excel ma prevedono comunque il coinvolgimento di una persona, mentre il terzo elimina la persona ma sposta il layout nel codice. Solo questo flusso fa entrambe le cose.


Domande frequenti

Esiste un modello di fattura in Excel?

Sì. Excel include modelli di fattura: nell'applicazione desktop, seleziona File > New e cerca fattura. Microsoft pubblica inoltre altri modelli nella sua galleria online. Sono progettati per essere compilati manualmente.

Il modello utilizzato in questo post è stato creato per uno scopo diverso. Le sue celle di valore contengono marcatori intelligenti anziché testo di esempio, in modo che un flusso possa compilarle. Puoi convertire qualsiasi modello di fattura che ti piace già allo stesso modo: mantieni il design e sostituisci ogni valore con un marcatore come &=RootData.Invoice.Number(noadd).

Come generare una fattura a partire da dati Excel?

Mantieni i dati in righe, mantieni il layout in un modello e lascia che qualcosa unisca i due elementi. Solo in Excel, questo qualcosa può essere la stampa unione di Word o una macro VBA, ed entrambe vengono eseguite sul computer di qualcuno.

In questo flusso, le righe risiedono in un elenco di SharePoint, Compose converte una riga in JSON e Excel - Populate la unisce al modello. Se i dati sono già una tabella Excel in OneDrive o SharePoint, l'azione List rows present in a table del connettore Excel Online (Business) può alimentare la stessa Compose all'interno di un ciclo Apply to each, sostituendo triggerBody() con items('Apply_to_each'). Tutto ciò che segue dal passaggio 3 in poi rimane invariato.

Come automatizzare la creazione delle fatture in Excel?

Automatizzare una fattura significa eliminare ogni passaggio che una persona compie per ogni fattura: inserire i valori, esportare in PDF, assegnare un nome al file e archiviarlo. Il modello stesso rimane un normale file Excel.

Questo flusso elimina tutti e quattro i passaggi. L'unica voce di input è la riga dell'elenco. Il modello viene compilato da Excel - Populate, esportato da Convert to PDF, archiviato da PDF - Create PdfA e archiviato da Create file. Una volta creato il nome del file a partire dalla riga, come descritto al passaggio 7, non c'è più nulla da fare manualmente.

Power Automate è in grado di convertire file Excel in PDF?

Sì. In un flusso cloud, l'azione Convert file del connettore OneDrive for Business converte un file .xlsx in un PDF, ma solo per i file archiviati in OneDrive. Pertanto, i flussi SharePoint spesso copiano prima la cartella di lavoro in OneDrive e poi la eliminano.

PDF4me Convert to PDF preleva il contenuto del file direttamente da qualsiasi operazione precedente. Ecco perché la cartella di lavoro compilata in questo flusso non viene mai salvata da nessuna parte: passa direttamente da Excel - Populate al convertitore e l'unico file che finisce in SharePoint è il PDF/fattura finale.


Risoluzione dei problemi

Un campo della fattura risulta vuoto

Verifica il nome della colonna all'interno dell'espressione Compose. Deve essere il nome interno, Dateandtime, e non Date and time. Il punto interrogativo in triggerBody()?['Dateandtime'] trasforma un nome errato in null anziché in un errore, quindi l'esecuzione rimane verde e la cella rimane vuota. Se il nome è corretto, verifica il percorso JSON rispetto al marcatore: RootData, poi Customer, poi Name, scritti allo stesso modo in entrambi.

La fattura è composta da due pagine, con una colonna sulla seconda pagina

Il modello è più largo di una pagina stampata. Convert to PDF segue le impostazioni di pagina della cartella di lavoro, quindi correggile lì: Page Layout, Scale to Fit, Larghezza 1 page. Salva nuovamente il modello in SharePoint e la successiva elaborazione adatterà la larghezza a una sola pagina.

Nel file ArchivedExcel è presente un solo file di fattura

Il File Name Create file è il testo fisso ExcelArchived.pdf, quindi ogni esecuzione si riferisce allo stesso nome. Rendilo univoco per ogni riga utilizzando l'ID dell'elemento dell'elenco, come descritto al passaggio 7.

Il PDF si apre correttamente ma non è PDF/A

Create file avviene tramite la lettura da PDF - Compress o Convert to PDF anziché da PDF - Create PdfA. Tutti e tre i token sono etichettati come Body, quindi l'errore è facile da commettere e nella cronologia delle esecuzioni non sembra esserci nulla di anomalo. Verificare che l'espressione sia body('PDF_-_Create_PdfA').


Prossimi passi

Lo stesso schema in otto fasi (riga dell'elenco, riformattazione in JSON, recupero del modello, compilazione, conversione, compressione, certificazione, salvataggio) gestisce qualsiasi documento che nasca come foglio di calcolo: preventivi, bolle di consegna, estratti conto e certificati.