Pular para o conteúdo principal

Modelo de fatura do Excel no Power Automate: Preencha a partir de uma lista do SharePoint e arquive todas as faturas como PDF/A com o PDF4me

· 34 min para ler
SEO and Content Writer

PDF4me Excel - Populate é uma ação do Power Automate que preenche um modelo de fatura do Excel com dados JSON. Nesse processo, um novo item de lista do SharePoint fornece os dados, a ação Preencher os insere nos marcadores inteligentes do modelo e mais três ações do PDF4me transformam a planilha em uma fatura PDF/A compactada que o SharePoint armazena automaticamente.

Ao pesquisar por um modelo de fatura em Excel, a primeira página é uma galeria. Microsoft, Vertex42, QuickBooks e Square oferecem planilhas em branco bem elaboradas, mas todas param no download. Nenhuma delas explica como o modelo é preenchido, o que, na prática, significa que alguém copia os dados do cliente para as células, exporta para PDF, nomeia o arquivo e o coloca em uma pasta, uma fatura por vez. Este fluxo mantém a parte que essas outras páginas fazem corretamente, um modelo que qualquer pessoa pode criar no Excel, e elimina todas as etapas posteriores ao download.

O fluxo em resumo
1. When an item is created
Gatilho do SharePoint na lista chamada Excel Template. Cada nova linha representa uma fatura.
2. Compose
Remodela a linha da lista simples no formato JSON aninhado RootData esperado pelo modelo.
3. Get file content using path
Lê o modelo de fatura do Excel dos Shared Documents a cada execução.
4. Excel - Populate
PDF4me Excel. Escreve o JSON nos marcadores inteligentes da planilha 1.
5. Convert to PDF
PDF4me Convert gera a planilha preenchida como Invoice.pdf.
6. PDF - Compress
Optimize Profile Web. Executado antes da aplicação do padrão de arquivamento.
7. PDF - Create PdfA
Compliance PdfA2b. A etapa que transforma uma fatura em um registro.
8. Create file
O SharePoint grava o ExcelArchived.pdf em /Shared Documents/ArchivedExcel.
A versão curta

Uma linha é inserida em uma lista do SharePoint. O Power Automate a transforma em JSON, preenche um modelo de fatura do Excel com ela, converte a planilha para PDF, a compacta, a converte para PDF/A-2b e grava o resultado em uma pasta do SharePoint. Oito ações, cerca de trinta e seis segundos por fatura, e ninguém precisa abrir o Excel.

Perguntas e respostas baseadas no porquê

Por que usar uma planilha do Excel como modelo de fatura? Porque é lá que as faturas já são formatadas. Larguras de coluna, células mescladas, fontes e bordas são todas definidas no Excel, então a pessoa responsável pelo layout pode alterá-lo sem mexer no fluxo de trabalho ou aprender HTML. O único requisito é que cada célula com um valor contenha um marcador inteligente em vez de texto de exemplo, e a etapa 4 mostra exatamente como eles ficam.

Por que o fluxo precisa de uma ação Compose? Porque uma linha de lista do SharePoint é plana, enquanto o modelo não. A lista armazena os dois itens de linha como dez colunas separadas, de Item1Description a Item2TaxRate. O modelo tem uma linha de item que se repete para cada entrada em uma matriz Items. Compose transforma as dez colunas em uma matriz de dois elementos, e é essa matriz que faz a linha se repetir.

Por que converter a fatura para PDF/A em vez de manter o arquivo .xlsx? Uma planilha é um documento dinâmico. Qualquer pessoa que a abra pode alterar uma quantidade, e uma fórmula pode recalcular o total para um valor diferente em outra máquina. Um PDF fixa o que foi faturado. O PDF/A vai além e incorpora tudo o que é necessário para renderizar a página, incluindo as fontes, o que é essencial para um documento que geralmente precisa permanecer legível por anos após o envio.

Por que manter o modelo em uma biblioteca do SharePoint em vez de dentro do fluxo? Porque o fluxo o lê da mesma forma a cada execução. Altere o logotipo, as cores ou a ordem das colunas no SharePoint e a próxima fatura usará o novo layout sem que ninguém precise editar o fluxo. O histórico de versões do SharePoint também mantém todas as cópias anteriores do modelo, portanto, uma alteração de layout malsucedida pode ser revertida a partir daí.


O que você receberá

Entrada: uma linha de uma lista do SharePoint contendo o cabeçalho da fatura, os dados do cliente e dois itens de linha. Saída: uma fatura compactada em PDF/A-2b, ExcelArchived.pdf, na pasta /Shared Documents/ArchivedExcel do mesmo site.

Lista do SharePoint chamada "Modelo do Excel" com quatro linhas de faturas: Shyam Prasad-INV, Sarah Brown - INV 01, Larry Wheels - 01 e Morris - INV. As colunas são: Título, Data e hora, Data de vencimento, Número do pedido (PONumber), Condições de pagamento, E-mail da empresa, Endereço da empresa, Nome do cliente, E-mail do cliente, Empresa do cliente, Endereço do cliente, Cidade, Estado e CEP do cliente. As colunas restantes são: Descrição, Quantidade, Preço unitário, Desconto e Alíquota de imposto para o Item 1 e o Item 2.

A fonte de dados: uma linha de lista por fatura, com vinte e duas colunas de largura. A última linha, Morris - INV, é a que gerou o resultado de exemplo.

A biblioteca de documentos do SharePoint está aberta na pasta ArchivedExcel, mostrando o arquivo ExcelArchived.pdf modificado há alguns segundos pela conta Pdf4me Flow.

ExcelArchived.pdf, localizado na pasta ArchivedExcel, foi criado pela conta do fluxo alguns segundos após a adição da linha.


Do que você precisa

  • Power Automate. Abra o Power Automate. Um fluxo na nuvem com conectores padrão. Os conectores do SharePoint e do PDF4me não exigem um plano premium.
  • Chave da API do PDF4me. Obtenha sua chave da API. Este fluxo utiliza três conexões do PDF4me: PDF4me Excel, PDF4me Convert e PDF4me PDF. Uma única chave autoriza todas as três.
  • Um site do SharePoint com uma lista cujas colunas correspondem ao mapeamento Compose, além de uma biblioteca de documentos para o modelo e a saída. O fluxo capturado usa a lista Excel Template, a pasta /Shared Documents/Excel Template para a planilha e /Shared Documents/ArchivedExcel para as faturas.
  • Modelo de fatura em Excel. pdf4me-excel-invoice-template.xlsx. Uma única folha, com marcadores inteligentes já inseridos.
  • O JSON Compose. compose-rootdata.json. O mapeamento exato do RootData da etapa 2, pronto para colar.
  • A fatura finalizada excel-archived-invoice.pdf. PDF/A-2b), exatamente o que a captura gerou.

Primeiro, obtenha os exemplos. Carregue o modelo na sua biblioteca do SharePoint, cole o JSON na ação Compose e compare a sua primeira execução com a fatura finalizada. Abra as propriedades do documento e você deverá ver a declaração PDF/A-2b. Saber como é uma saída correta é a maneira mais rápida de verificar se a sua execução funcionou corretamente.


O Fluxo em Resumo

  1. When an item is created (gatilho do SharePoint), o sistema monitora a lista chamada Excel Template.
  2. Compose cria o JSON RootData a partir da nova linha.
  3. Get file content using path lê o modelo de /Shared Documents/Excel Template.
  4. Excel - Populate (PDF4me Excel) mescla o JSON na planilha 1.
  5. Convert to PDF (PDF4me Convert) gera a planilha como Invoice.pdf.
  6. PDF - Compress (PDF4me PDF) com Optimize Profile Web.
  7. PDF - Create PdfA (PDF4me PDF) com Compliance PdfA2b.
  8. Create file (SharePoint) em /Shared Documents/ArchivedExcel.

Visão geral completa do fluxo

O histórico de execução do Power Automate mostra oito ações concluídas com sucesso nesta ordem: Criação de um item em 0,3 segundos, Composição em 0 segundos, Obtenção do conteúdo do arquivo usando o caminho em 0,5 segundos, Preenchimento do Excel em 0,8 segundos, Conversão para PDF em 10 segundos, Compressão de PDF em 11 segundos, Criação de PDF em 11 segundos e Criação de arquivo em 2 segundos.

A execução que gerou a fatura de exemplo. Convert, Compress e Create PdfA levam de dez a onze segundos cada, e todo o resto termina em menos de um segundo, com exceção da gravação no SharePoint, que leva dois segundos. Reserve cerca de trinta e seis segundos por fatura.


Passo 1: Como acionar um fluxo quando um item de lista do SharePoint é criado?

Fluxo até agora: nada ainda, este é o gatilho.

Cada nova linha na lista representa uma fatura, portanto, o gatilho é a própria lista.

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

Configuração de gatilho do SharePoint

SharePoint: Painel de gatilho "Quando um item é criado" com o Endereço do Site definido como PDF4me Sharepoints em ynoox1.sharepoint.com/sites/PDF4meSharepoints e o Nome da Lista definido como Modelo do Excel, parâmetros avançados mostrando 0 de 1, conectado ao SharePoint.

Uma lista, um gatilho. A coluna Title integrada da lista contém o número da fatura, e é por isso que a próxima etapa mapeia o Número para Title.

Dica. As expressões usam o nome interno da coluna, não o nome que você vê na lista. A lista mostra uma coluna chamada Date and time, mas o gatilho a retorna como Dateandtime, e esse é o nome que o Compose deve usar. Um nome incorreto não impede a execução. O operador ? em triggerBody()?['Dateandtime'] retorna null silenciosamente, então a fatura simplesmente fica com uma data vazia.


Passo 2: Como converter uma linha estática do SharePoint em JSON para um modelo do Excel?

Fluxo até o momento: gatilho do SharePoint.

O modelo espera uma estrutura aninhada: um cabeçalho de fatura, um bloco de empresa, um bloco de cliente e uma lista de itens. A linha da lista é plana. Compose é a camada de tradução entre os dois.

  1. Adicionar Data Operation > Compose.
  2. Cole isso em Inputs. Cada valor é uma expressão triggerBody()?['<column>'] que aponta para uma coluna da lista.
{
"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: visualização de código

Ação Compose do Power Automate na visualização de código com entradas RootData contendo matrizes de Fatura, Empresa, Cliente e Itens, cada valor mapeado para uma expressão triggerBody como Título, Data e Hora, Data de Vencimento, Número do Pedido, Condições de Pagamento, E-mail da Empresa, Nome do Cliente e Descrição do Item 1 até Taxa de Imposto do Item 2.

Invoice, Company e Customer são arrays de um único elemento. Items possui dois elementos, um para cada conjunto de colunas de itens na lista.

Como cada célula do modelo obtém seu valor

Célula modeloMarcador inteligente na célulaCompose caminhoColuna do 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
E-mail e endereço (B4, B5)&=RootData.Company.Email(noadd) e .AddressCompany[0]CompanyEmail, CompanyAddress
Bloco Customer (B6 a B10)&=RootData.Customer.Name(noadd) e mais quatroCustomer[0]CustomerName para CustomerCityStateZIP
Linha de itens (A19 a E19)&=RootData.Items.Description, .Qty, .UnitPrice, .Discount, .TaxRateItems[0] e Items[1]Colunas Item1 e Item2

O bloco From (B3) é um texto simples, PDF4me, portanto, é o mesmo em todas as faturas. Substitua-o pelo nome da sua empresa no modelo.


Etapa 3: De onde o fluxo lê o modelo do Excel?

Fluxo até o momento: gatilho do SharePoint mais Compose.

O modelo é um arquivo comum em uma biblioteca de documentos. O fluxo o lê a cada execução, portanto, o layout utilizado será aquele que estiver presente no SharePoint naquele momento.

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

Get file content using path: configuração

A ação "Obter conteúdo do arquivo usando o caminho" do SharePoint, com o endereço do site "PDF4me SharePoints", caminho do arquivo "/Shared Documents/Excel Template/PDF4me_Excel_SharePoint_Template_.xlsx" e o parâmetro avançado "Inferir tipo de conteúdo" definido como "Sim", está conectado ao SharePoint.

A lista e a pasta de modelos são ambas chamadas de Excel Template. São coisas diferentes: uma é uma lista, a outra é uma pasta em Shared Documents.


Passo 4: Como o Excel - Populate preenche um modelo de fatura?

Fluxo até agora: gatilho do SharePoint mais Compose mais Get file content using path.

Esta etapa executa o trabalho que as galerias de modelos deixam para você. Excel - Populate pega a planilha e o JSON, encontra todos os marcadores inteligentes e insere o valor correspondente na célula.

  1. Adicionar Excel - Populate a partir da conexão PDF4me Excel.
  2. Configurar:
    • File Content: o token Body obtido ao Get file content using path
    • JSON Data: a saída do Compose (o token aparece como Body)
    • File Name: Populate.xlsx
    • Worksheet Indexes: 1
  3. Abra Advanced parameters e defina três das quatro opções:
    • Strict JSON Strings: Yes
    • Culture & Language Settings: en-US
    • Calculate Formulas: Yes

Excel - Populate: configuração

A ação "Preencher" do PDF4me Excel foi configurada com o Conteúdo do Arquivo definido como o token "Body" do SharePoint, Dados JSON definidos como o token "Body" da opção "Compor", Nome do Arquivo "Preencher.xlsx", Índices da Planilha: 1, e parâmetros avançados: "Strings JSON Estritas: Sim", Configurações de Cultura e Idioma: en-US e "Calcular Fórmulas: Sim", conectado ao PDF4me Excel.

O trabalho é realizado por duas entradas: os bytes do modelo do SharePoint e o JSON do Compose. Todo o resto se resume à formatação e ao escopo.

O modelo utiliza dois tipos de marcador, e a diferença entre eles é o segredo do truque:

  • As células de cabeçalho, como Invoice No. contêm &=RootData.Invoice.Number(noadd). O modificador (noadd) grava o valor no local e nunca insere uma linha.
  • A linha do item contém &=RootData.Items.Description, &=RootData.Items.Qty e assim por diante, sem nenhum modificador. Essa linha é escrita uma vez para cada elemento da matriz Items, portanto, dois itens produzem duas linhas e um terceiro item produziria uma terceira.

A gramática completa, incluindo modificadores, caminhos aninhados e manipulação de fórmulas, está na visão geral da sintaxe da Excel Populate. Para obter informações sobre a ação Preencher isoladamente, com um modelo do Dropbox e uma carga útil JSON embutida, consulte Preenchendo um modelo do Excel a partir de JSON no Power Automate.

Dica. Cada valor no Compose fica entre aspas como uma interpolação de string, portanto, quantidades e preços chegam ao modelo como texto. Com a Strict JSON Strings definida como Yes, eles permanecem como texto, o que é impresso corretamente e é tudo o que este modelo precisa. Se você adicionar um total de linha ou uma soma, defina como No para que strings com aparência numérica se tornem números reais. Caso contrário, a função SOMA as ignora, porque o Excel não soma números armazenados como texto.


Etapa 5: Como converter a planilha preenchida em PDF?

Fluxo até agora: Gatilho do SharePoint + Compose + Get file content using path + Excel - Populate.

A planilha preenchida existe apenas durante a execução do programa. Ela nunca é salva como um arquivo .xlsx; ela vai diretamente para o conversor.

  1. Adicione a Convert to PDF a partir da conexão PDF4me Convert.
  2. Configurar:
    • File Content: o token Output File Content do Excel - Populate
    • File Name: Invoice.pdf

Convert to PDF: configuração

A ação "Converter para PDF" do PDF4me, com o Conteúdo do Arquivo definido como o token de Conteúdo do Arquivo de Saída do Excel e o Nome do Arquivo definido como "Fatura.pdf", está conectada à ação "Converter para PDF" do PDF4me.

Output File Content é a planilha preenchida. Ele nunca chega ao SharePoint como um arquivo .xlsx.

Dica: O fluxo capturado usa Invoice.pdf como File Name e ainda converte corretamente. No entanto, a referência Convert to PDF solicita a extensão do arquivo de origem; portanto, Invoice.xlsx é o valor mais seguro ao criar o seu próprio.

Defina o layout da página no modelo, não no fluxo. Convert to PDF segue a configuração de página da planilha. O modelo de exemplo é ligeiramente mais largo que uma página Letter, portanto, a fatura capturada tem as colunas A a D na primeira página e apenas a coluna Tax % na segunda página. Abra o modelo no Excel, vá para Page Layout e defina Scale to Fit > Width para 1 page e, em seguida, salve-o novamente no SharePoint. Todas as faturas subsequentes caberão em uma página.


Etapa 6: Como compactar a fatura e convertê-la para PDF/A?

Fluxo até agora: tudo através Convert to PDF.

Duas ações da conexão PDF4me PDF: primeiro, comprimir e, em seguida, certificar. Inverter essas ações permitiria que a compressão sobrescrevesse um arquivo que já havia sido tornado compatível.

  1. Adicionar PDF - Compress.
    • File Content: o token Body da Convert to PDF
    • File Name: o token headers/FileName herdado da ação anterior
    • Optimize Profile: Web
  2. Adicionar PDF - Create PdfA.
    • File Content: o token Body do PDF - Compress
    • File Name: o token headers/FileName
    • Compliance: PdfA2b
    • Allow Upgrade: Yes
    • Allow Downgrade: Yes

Compress e Create PdfA: parâmetros

AçãoParâmetroValor utilizado aquiO que ele controla
PDF - CompressOptimize ProfileWebO equilíbrio entre tamanho e fidelidade é crucial. Uma fatura composta apenas por texto e tabelas, sem imagens, tem poucos elementos que podem ser comprometidos.
PDF - Create PdfACompliancePdfA2bISO 19005-2, nível B. A página será exibida da mesma forma em qualquer visualizador, mesmo daqui a anos.
PDF - Create PdfAAllow UpgradeYesPermite que a ação seja encaminhada para um nível superior quando o nível solicitado não estiver disponível.
PDF - Create PdfAAllow DowngradeYesPermite que o problema se estabilize num nível inferior, em vez de falhar completamente.
A ação PDF4me PDF Compress, com o Conteúdo do Arquivo definido como o token Body, o Nome do Arquivo definido como o token FileName dos cabeçalhos e o Perfil de Otimização definido como Web, está conectada ao PDF4me PDF.

A função Compress atua na fatura convertida, antes de qualquer certificação.

Ação PDF4me PDF Create PdfA com Conteúdo do Arquivo definido como o token Corpo, Nome do Arquivo definido como o token FileName dos cabeçalhos, Conformidade PdfA2b, Permitir Atualização Sim e Permitir Downgrade Sim, conectado ao PDF4me PDF

Create PdfA é a última ação a modificar o documento, que é exatamente onde deveria estar.

O mesmo par de ferramentas executa a mesma tarefa em arquivos que já estão no SharePoint, no arquivamento de PDFs no Power Automate com uma pasta do SharePoint não supervisionada.


Etapa 7: Onde a fatura finalizada será salva?

Fluxo até o momento: tudo através do Create PdfA.

A última ação grava a fatura certificada de volta no mesmo site do SharePoint.

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

SharePoint Create file: configuração

Ação "Criar arquivo" do SharePoint com o endereço do site "PDF4me SharePoints", caminho da pasta "/Documentos Compartilhados/ExcelArquivado", nome do arquivo "ExcelArquivado.pdf" e conteúdo do arquivo definido como o token "Corpo" da ação "Criar PDF" do SharePoint, conectada ao SharePoint.

Cada ação do PDF4me gera um token chamado Body, portanto, o rótulo por si só não indica qual ação você selecionou. Passe o cursor sobre ele ou verifique a visualização do código para body('PDF_-_Create_PdfA').

Altere isso antes de publicar. ExcelArchived.pdf é um nome fixo, portanto, cada novo item da lista é gravado no mesmo arquivo e a pasta nunca contém mais do que a fatura mais recente. Em vez disso, construa o nome a partir da linha. O ID do item da lista é único por definição, portanto, concat('Invoice-', triggerBody()?['ID'], '.pdf') sempre funciona. O número da fatura no Title também funciona, desde que não contenha caracteres que o SharePoint rejeita em nomes de arquivo, como uma barra, dois pontos, um asterisco ou um ponto de interrogação.


Execute o fluxo e verifique

  1. Save o fluxo no canto superior direito.
  2. Adicione um novo item à lista chamado Excel Template e preencha todas as colunas que o modelo utiliza.
  3. Abra o histórico de execução. Todas as oito ações devem estar verdes, sendo que Convert, Compress e Create PdfA consumiram a maior parte do tempo.
  4. Abra a pasta /Shared Documents/ArchivedExcel e verifique se o PDF está lá, com Modified By mostrando a conta do fluxo.
  5. Abra o próprio arquivo e compare-o com a linha da lista, depois verifique as propriedades do documento em busca da declaração PDF/A.

A fatura da execução capturada tem 37.876 bytes. Ela exibe a linha Morris - INV: cliente Morris Luma na Invoicing.co, datada de 01/09/2026 e com vencimento em 20/09/2026, com dois itens: PDF to Excel (quantidade 60) e PDFA (quantidade 45). Seus metadados XMP declaram pdfaid:part como 2 e pdfaid:conformance como B, que corresponde ao formato PDF/A-2b visto de dentro. Ela possui duas páginas em vez de uma, devido à configuração de página explicada na etapa 5.

O que você realmente criou? Um fluxo de faturamento onde a única etapa manual é a entrada de dados. O layout fica em um arquivo Excel que qualquer pessoa pode editar, os dados ficam em uma lista e a saída é um PDF arquivado automaticamente, sem que ninguém precise arquivá-lo. O modelo não está restrito ao Power Automate: ele funciona também com Make, Zapier e n8n, onde as ações PDF4me Excel e PDF/A estão disponíveis.


Variações comuns que você pode adicionar sem reconstruir

Enviar a fatura por e-mail ao cliente
Adicione o recurso Send an email (V2) Office 365 Outlook após Create file. Insira o campo E-mail do Cliente no campo Para e anexe o Body do arquivo PDF - Create PdfA, para que o cliente receba o mesmo arquivo PDF/A que foi arquivado.
Formate as datas da maneira como seus clientes as leem
O exemplo imprime 2026-09-01 porque é assim que o gatilho retorna uma data. Envolva as expressões Date e DueDate no Compose com formatDateTime e um padrão como 'dd MMM yyyy'.
Adicione os totais das linhas e o total geral
Insira as fórmulas no modelo, defina Strict JSON Strings como Não para que as quantidades e os preços sejam exibidos como números e deixe Calculate Formulas como Sim para que os totais já estejam calculados antes da conversão.
Verifique a norma em vez de presumir que ela existe
Adicione Validate PDFA após Create PdfA e defina o resultado da validação. Uma conversão com falha será exibida no histórico de execuções em vez de em uma auditoria.

Como isso se compara a outras formas de gerar faturas?

Cada linha descreve a alternativa. A última linha é este fluxo.

ComparaçãoQuem pode alterar o layout?Como o modelo é preenchidoFormato de arquivo
Planilha do Excel preenchida manualmente versus este fluxoQualquer pessoa que use o ExcelCopiar e colar, uma fatura de cada vezPDF simples, a menos que alguém configure a opção de exportação PDF/A
Macro VBA do Excel versus este fluxoQuem quer que mantenha a macroAutomaticamente, em um computador com a planilha abertaPDF simples, a menos que a exportação esteja configurada para PDF/A
Modelo HTML mais Convert HTML para PDF versus este fluxoAlguém com familiaridade com HTML e CSSAutomaticamente, na nuvemPDF
Esse fluxoQualquer pessoa que use o ExcelAutomaticamente, a cada novo item da listaPDF/A-2b

A distinção que importa é a seguinte: os dois primeiros fluxos mantêm o layout no Excel, mas mantêm uma pessoa envolvida no processo, enquanto o terceiro remove a pessoa, mas move o layout para o código. Somente este fluxo faz as duas coisas.


Perguntas frequentes

Existe algum modelo de fatura em Excel?

Sim. O Excel inclui modelos de fatura: no aplicativo para desktop, escolha File > New e pesquise por fatura. A Microsoft também disponibiliza mais modelos em sua galeria online. Eles são projetados para serem preenchidos manualmente.

O modelo usado nesta postagem foi criado para uma tarefa diferente. Suas células de valor contêm marcadores inteligentes em vez de texto de exemplo, para que um fluxo possa preenchê-las. Você pode converter qualquer modelo de fatura que já goste da mesma maneira: mantenha o design e substitua cada valor por um marcador como &=RootData.Invoice.Number(noadd).

Como gerar uma fatura a partir de dados do Excel?

Mantenha os dados em linhas, o layout em um modelo e deixe que algo combine os dois. Dentro do Excel, esse algo pode ser uma mala direta do Word ou uma macro VBA, e ambos são executados no computador de alguém.

Neste fluxo, as linhas residem em uma lista do SharePoint, Compose transforma uma linha em JSON e Excel - Populate a mescla ao modelo. Se seus dados já estiverem em uma tabela do Excel no OneDrive ou SharePoint, a ação List rows present in a table do conector Excel Online (Business) pode alimentar a mesma Compose dentro de um loop Apply to each, com items('Apply_to_each') no lugar de triggerBody(). Tudo a partir da etapa 3 permanece como está.

Como automatizar faturas no Excel?

Automatizar uma fatura significa eliminar cada etapa que uma pessoa realiza para cada fatura: digitar os valores, exportar para PDF, nomear o arquivo e arquivá-lo. O modelo em si permanece um arquivo Excel normal.

Este fluxo elimina todos os quatro. A linha da lista é a única entrada. O modelo é preenchido pelo Excel - Populate, exportado por Convert to PDF, arquivado por PDF - Create PdfA e arquivado por Create file. Depois que o nome do arquivo é criado a partir da linha, conforme descrito na etapa 7, não há mais nada a ser feito manualmente.

O Power Automate consegue converter Excel em PDF?

Sim. Em um fluxo na nuvem, a ação Convert file do conector do OneDrive for Business transforma um arquivo .xlsx em PDF, mas apenas para arquivos armazenados no OneDrive. Portanto, os fluxos do SharePoint geralmente copiam a pasta de trabalho para lá primeiro e a excluem depois.

PDF4me Convert to PDF utiliza o conteúdo do arquivo diretamente de qualquer ação anterior. É por isso que a planilha preenchida neste fluxo nunca é salva em nenhum lugar: ela vai do Excel - Populate diretamente para o conversor, e o único arquivo que chega ao SharePoint é a fatura em PDF/A finalizada.


Solução de problemas

Um campo da fatura aparece em branco

Verifique o nome da coluna dentro da expressão Compose. Deve ser o nome interno, Dateandtime, e não Date and time. O ponto de interrogação em triggerBody()?['Dateandtime'] transforma um nome incorreto em nulo em vez de um erro, para que a execução permaneça verde e a célula permaneça vazia. Se o nome estiver correto, verifique o caminho JSON em relação ao marcador: RootData, depois Customer e, por fim, Name, escritos da mesma forma em ambos.

A fatura tem duas páginas, com uma coluna na segunda página

O modelo é mais largo do que uma página impressa. Convert to PDF segue a configuração de página da planilha, então corrija isso lá: Page Layout, Scale to Fit, Largura 1 page. Salve o modelo de volta no SharePoint e a próxima execução ajustará a largura para uma página.

Apenas um arquivo de fatura é mantido no ArchivedExcel

O File Name Create file é o texto fixo ExcelArchived.pdf, portanto, todas as execuções terão o mesmo nome como alvo. Torne-o exclusivo por linha com o ID do item da lista, conforme descrito na etapa 7.

O PDF abre normalmente, mas não é PDF/A

Create file está lendo de PDF - Compress ou Convert to PDF em vez de PDF - Create PdfA. Todos os três tokens são rotulados como Body, então o erro é fácil de cometer e nada no histórico de execução parece errado. Confirme se a expressão é body('PDF_-_Create_PdfA').


Próximos passos

O mesmo padrão de oito etapas (listar linha, remodelar para JSON, buscar o modelo, preencher, converter, compactar, certificar, salvar) lida com qualquer documento que comece como uma planilha: orçamentos, notas de entrega, extratos e certificados.