Saltar al contenido principal

Plantilla de factura de Excel en Power Automate: rellénela desde una lista de SharePoint y archive cada factura como PDF/A con PDF4me

· 34 min de lectura
SEO and Content Writer

PDF4me Excel - Populate es una acción de Power Automate que rellena una plantilla de factura de Excel con datos JSON. Un nuevo elemento de lista de SharePoint proporciona los datos, Rellenar los escribe en los marcadores inteligentes de la plantilla y tres acciones adicionales de PDF4me convierten el libro de trabajo en una factura PDF/A comprimida que SharePoint almacena automáticamente.

Si buscas una plantilla de factura en Excel, la primera página es una galería. Microsoft, Vertex42, QuickBooks y Square te ofrecen un libro de trabajo en blanco bien diseñado, pero en todos los casos la información se limita a la descarga. Ninguno explica cómo se rellena la plantilla, lo que en la práctica significa copiar los datos del cliente en las celdas, exportar a PDF, nombrar el archivo y guardarlo en una carpeta, factura por factura. Este método conserva la parte que esas páginas sí ofrecen correctamente: una plantilla que cualquiera puede diseñar en Excel, y elimina todos los pasos posteriores a la descarga.

El flujo de un vistazo
1. When an item is created
Activador de SharePoint en la lista llamada Excel Template. Cada nueva fila es una factura.
2. Compose
Reestructura la fila de la lista plana para convertirla en el JSON RootData anidado que espera la plantilla.
3. Get file content using path
Lee la plantilla de factura de Excel desde Shared Documents en cada ejecución.
4. Excel - Populate
PDF4me Excel. Escribe el JSON en los marcadores inteligentes de la hoja 1.
5. Convert to PDF
PDF4me Convert. Genera el libro de trabajo completado como Invoice.pdf.
6. PDF - Compress
Optimize Profile Web. Se ejecuta antes de que se aplique el estándar de archivado.
7. PDF - Create PdfA
Compliance PdfA2b. El paso que convierte una factura en un registro.
8. Create file
SharePoint escribe ExcelArchived.pdf en /Shared Documents/ArchivedExcel.
La versión corta

Una fila llega a una lista de SharePoint. Power Automate la transforma a formato JSON, rellena una plantilla de factura de Excel con ella, convierte el libro de trabajo a PDF, lo comprime, lo convierte a PDF/A-2b y guarda el resultado en una carpeta de SharePoint. Ocho acciones, unos treinta y seis segundos por factura, y nadie abre Excel.

Preguntas y respuestas basadas en el porqué

¿Por qué usar un libro de Excel como plantilla de factura? Porque es ahí donde se diseñan las facturas. El ancho de las columnas, las celdas combinadas, las fuentes y los bordes se configuran en Excel, por lo que la persona responsable del diseño puede modificarlo sin alterar el flujo ni aprender HTML. El único requisito es que cada celda con un valor contenga un marcador inteligente en lugar de texto de ejemplo, y el paso 4 muestra exactamente cómo se ven.

¿Por qué el flujo necesita una acción Compose? Porque una fila de lista de SharePoint es plana y la plantilla no lo es. La lista almacena los dos elementos de línea como diez columnas separadas, desde Item1Description hasta Item2TaxRate. La plantilla tiene una fila de elemento que se repite para cada entrada en una matriz Items. Compose es donde las diez columnas se convierten en una matriz de dos elementos, y esa matriz es la que hace que la fila se repita.

¿Por qué convertir la factura a PDF/A en lugar de conservar el archivo .xlsx? Un libro de trabajo es un documento dinámico. Cualquiera que lo abra puede modificar una cantidad, y una fórmula puede recalcularse y arrojar un total diferente en otro equipo. Un PDF mantiene la información facturada original. PDF/A va un paso más allá e incluye todo lo necesario para visualizar la página, incluidas las fuentes, lo cual es fundamental para un documento que generalmente debe permanecer legible durante años después de su envío.

¿Por qué guardar la plantilla en una biblioteca de SharePoint en lugar de dentro del flujo? Porque el flujo la lee actualizada en cada ejecución. Si se modifican el logotipo, los colores o el orden de las columnas en SharePoint, la siguiente factura utilizará el nuevo diseño sin necesidad de editar el flujo. El historial de versiones de SharePoint también guarda todas las copias anteriores de la plantilla, por lo que se puede revertir un cambio de diseño incorrecto.


Lo que obtendrás

Entrada: una fila de una lista de SharePoint que contiene el encabezado de la factura, los datos del cliente y dos líneas de partida. Salida: una factura comprimida en formato PDF/A-2b, ExcelArchived.pdf, en la carpeta /Shared Documents/ArchivedExcel del mismo sitio.

Lista de SharePoint llamada Plantilla de Excel con cuatro filas de facturas, Shyam Prasad-INV, Sarah Brown - INV 01, Larry Wheels - 01 y Morris - INV, y columnas Título, Fecha y hora, Fecha de vencimiento, Número de PON, Condiciones de pago, Correo electrónico de la empresa, Dirección de la empresa, Nombre del cliente, Correo electrónico del cliente, Empresa del cliente, Dirección del cliente, Ciudad, Estado y Código postal del cliente, y luego Descripción, Cantidad, Precio unitario, Descuento y Tasa de impuestos para el Artículo 1 y el Artículo 2.

La fuente de datos: una fila de lista por factura, de veintidós columnas de ancho. La última fila, Morris - INV, es la que generó el resultado de muestra.

La biblioteca de documentos de SharePoint se abre en la carpeta ArchivedExcel y muestra el archivo ExcelArchived.pdf modificado hace unos segundos por la cuenta Pdf4me Flow.

ExcelArchived.pdf se encuentra en la carpeta ArchivedExcel y fue escrito por la cuenta de flujo unos segundos después de que se agregó la fila.


Lo que necesitas

  • Power Automate. Power Automate abierto. Un flujo en la nube con conectores estándar. SharePoint y los conectores PDF4me no requieren un plan premium.
  • Clave API de PDF4me. Obtenga su clave API. Este flujo utiliza tres conexiones de PDF4me: PDF4me Excel, PDF4me Convert y PDF4me PDF. Una sola clave autoriza las tres.
  • Un sitio de SharePoint con una lista cuyas columnas coinciden con la asignación Compose, además de una biblioteca de documentos para la plantilla y la salida. El flujo capturado utiliza la lista Excel Template, la carpeta /Shared Documents/Excel Template para el libro de trabajo y /Shared Documents/ArchivedExcel para las facturas.
  • Plantilla de factura de Excel. pdf4me-excel-invoice-template.xlsx. Una sola hoja, con marcadores inteligentes ya colocados.
  • El JSON Compose. compose-rootdata.json. El mapeo exacto de RootData del paso 2, listo para pegar.
  • La factura finalizada. excel-archived-invoice.pdf. PDF/A-2b, exactamente lo que produjo la ejecución capturada.

Primero, descarga las muestras. Sube la plantilla a tu biblioteca de SharePoint, pega el JSON en la acción Compose y compara tu primer intento con la factura final. Abre las propiedades del documento y verás que se indica PDF/A-2b. Saber cómo es un resultado correcto es la forma más rápida de comprobar si tu intento funcionó correctamente.


El flujo de un vistazo

  1. When an item is created (desencadenador de SharePoint), se supervisa la lista denominada Excel Template.
  2. Compose construye el JSON RootData a partir de la nueva fila.
  3. Get file content using path lee la plantilla desde /Shared Documents/Excel Template.
  4. Excel - Populate (PDF4me Excel) combina el JSON en la hoja de cálculo 1.
  5. Convert to PDF (PDF4me Convert) genera el libro de trabajo como Invoice.pdf.
  6. PDF - Compress (PDF4me PDF) con Optimize Profile Web.
  7. PDF - Create PdfA (PDF4me PDF) con Compliance PdfA2b.
  8. Create file (SharePoint) en /Shared Documents/ArchivedExcel.

Descripción general del flujo completo

Historial de ejecución de Power Automate que muestra ocho acciones que se completaron con éxito en orden: Cuando se crea un elemento a los 0,3 segundos, Componer a los 0 segundos, Obtener el contenido del archivo usando la ruta a los 0,5 segundos, Rellenar Excel a los 0,8 segundos, Convertir a PDF a los 10 segundos, Comprimir PDF a los 11 segundos, Crear PDF PdfA a los 11 segundos y Crear archivo a los 2 segundos.

La ejecución que generó la factura de muestra. Convert, Compress y Create PdfA tardan entre diez y once segundos cada una, y todo lo demás finaliza en menos de un segundo, salvo la escritura en SharePoint, que tarda dos segundos. Calcule unos treinta y seis segundos por factura.


Paso 1: ¿Cómo se activa un flujo cuando se crea un elemento de una lista de SharePoint?

Flujo hasta ahora: nada todavía, este es el detonante.

Cada nueva fila de la lista representa una factura, por lo que el desencadenante es la propia lista.

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

Configuración del desencadenador de SharePoint

SharePoint Cuando se crea un elemento, panel de activación con Dirección del sitio establecida en PDF4me Sharepoints en ynoox1.sharepoint.com/sites/PDF4meSharepoints y Nombre de la lista establecido en Plantilla de Excel, parámetros avanzados que muestran 0 de 1, conectado a SharePoint

Una lista, un disparador. La columna Title integrada de la lista contiene el número de factura, por lo que el siguiente paso asigna Número a Title.

Consejo: Las expresiones usan el nombre interno de la columna, no el que aparece en la lista. La lista muestra una columna llamada Date and time, pero el disparador la devuelve como Dateandtime, y ese es el nombre que debe usar la Compose. Un nombre incorrecto no provoca que la ejecución falle. El signo de interrogación en triggerBody() ? triggerBody()?['Dateandtime'] devuelve null, por lo que la factura simplemente aparece con una fecha vacía.


Paso 2: ¿Cómo se convierte una fila plana de SharePoint en JSON para una plantilla de Excel?

Flujo hasta ahora: Disparador de SharePoint.

La plantilla espera una estructura anidada: un encabezado de factura, un bloque de empresa, un bloque de cliente y una lista de artículos. La fila de la lista es plana. Compose actúa como capa de traducción entre ambos.

  1. Agregar Data Operation > Compose.
  2. Pega esto en Inputs. Cada valor es una expresión triggerBody()?['<column>'] que apunta a una columna de la 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: vista de código

Acción de composición de Power Automate en la vista de código con entradas RootData que contienen matrices de factura, empresa, cliente e ítems, cada valor asignado a una expresión triggerBody como Título, Fecha y hora, Fecha de vencimiento, Número de PON, Condiciones de pago, Correo electrónico de la empresa, Nombre del cliente y Descripción del ítem1 hasta Tasa impositiva del ítem2

Invoice, Company y Customer son matrices de un solo elemento. Items tiene dos elementos, uno por cada conjunto de columnas de artículos en la lista.

Cómo cada celda de la plantilla obtiene su valor

Celda plantillaMarcador inteligente en la célulaCompose rutaColumna de SharePoint
Invoice No. (B12)&=RootData.Invoice.Number(noadd)Invoice[0].NumberTitle
Fecha (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
Correo electrónico y dirección (B4, B5)&=RootData.Company.Email(noadd) y .AddressCompany[0]CompanyEmail, CompanyAddress
Bloque Customer (B6 a B10)&=RootData.Customer.Name(noadd) y cuatro másCustomer[0]CustomerName a CustomerCityStateZIP
Fila de artículos (A19 a E19)&=RootData.Items.Description, .Qty, .UnitPrice, .Discount, .TaxRateItems[0] y Items[1]Columnas Item1 y Item2

El bloque From (B3) es texto plano, PDF4me, por lo que es el mismo en todas las facturas. Reemplácelo con el nombre de su empresa en la plantilla.


Paso 3: ¿De dónde lee el flujo la plantilla de Excel?

Flujo hasta ahora: Disparador de SharePoint más Compose.

La plantilla es un archivo común en una biblioteca de documentos. El flujo la lee en cada ejecución, por lo que se utiliza el diseño que haya en SharePoint en ese momento.

  1. Agregar 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 (avanzado): Yes

Get file content using path: configuración

SharePoint Obtener contenido de archivo usando la acción Ruta con Dirección del sitio PDF4me Sharepoints, Ruta de archivo /Shared Documents/Excel Template/PDF4me_Excel_SharePoint_Template_.xlsx y el parámetro avanzado Inferir tipo de contenido establecido en Sí, conectado a SharePoint

Tanto la lista como la carpeta de plantillas se llaman Excel Template. Son cosas diferentes: una es una lista y la otra es una carpeta en Shared Documents.


Paso 4: ¿Cómo rellena Excel - Populate Rellenar de Excel una plantilla de factura?

Flujo hasta ahora: Disparador de SharePoint más Compose más Get file content using path.

Este paso realiza el trabajo que las galerías de plantillas dejan pendiente. Excel - Populate toma el libro de trabajo y el JSON, encuentra cada marcador inteligente y escribe el valor correspondiente en su celda.

  1. Agregar Excel - Populate desde la conexión PDF4me Excel.
  2. Configurar:
    • File Content: el token Body de Get file content using path
    • JSON Data: la salida de Compose (el token se muestra como Body)
    • File Name: Populate.xlsx
    • Worksheet Indexes: 1
  3. Abra Advanced parameters y configure tres de las cuatro opciones:
    • Strict JSON Strings: Yes
    • Culture & Language Settings: en-US
    • Calculate Formulas: Yes

Excel - Populate: configuración

PDF4me Excel Rellenar acción con Contenido de archivo establecido en el token Cuerpo de SharePoint, Datos JSON establecidos en el token Cuerpo de Componer, Nombre de archivo Populate.xlsx, Índices de hoja de cálculo 1 y parámetros avanzados Cadenas JSON estrictas Sí, Configuración de cultura e idioma en-US y Calcular fórmulas Sí, conectado a PDF4me Excel

El trabajo se realiza a partir de dos entradas: los bytes de la plantilla de SharePoint y el JSON de Compose. Todo lo demás es formato y ámbito.

La plantilla utiliza dos tipos de marcadores, y la diferencia entre ellos es precisamente el truco:

  • Las celdas de encabezado, como Invoice No. contienen &=RootData.Invoice.Number(noadd). El modificador (noadd) escribe el valor en su lugar y nunca inserta una fila.
  • La fila de elementos contiene &=RootData.Items.Description, &=RootData.Items.Qty, etc., sin ningún modificador. Esa fila se escribe una vez por cada elemento del array Items, por lo que dos elementos producen dos filas, y un tercer elemento produciría una tercera.

La gramática completa, incluidos los modificadores, las rutas anidadas y el manejo de fórmulas, se encuentra en la descripción general de la sintaxis Excel Populate. Para la acción Rellenar por sí sola, con una plantilla de Dropbox y una carga útil JSON en línea, consulte Rellenar una plantilla de Excel desde JSON en Power Automate.

Consejo: Cada valor en la Compose se inserta entre comillas como una cadena de texto, por lo que las cantidades y los precios llegan a la plantilla como texto. Si la Strict JSON Strings está Yes, se mantienen como texto, lo que permite una impresión correcta y es todo lo que necesita esta plantilla. Si agrega un total de línea o una suma, desactívela para No las cadenas de texto con apariencia numérica se conviertan en números reales. De lo contrario, la función Suma las omitirá, ya que Excel no suma los números almacenados como texto.


Paso 5: ¿Cómo se convierte el libro de trabajo con datos a formato PDF?

Flujo hasta ahora: Disparador de SharePoint más Compose más Get file content using path más Excel - Populate.

El libro de trabajo con datos solo existe dentro de la ejecución. Nunca se guarda como un archivo .xlsx; se introduce directamente en el convertidor.

  1. Agregue la Convert to PDF desde la conexión PDF4me Convert.
  2. Configurar:
    • File Content: el token Output File Content de Excel - Populate
    • File Name: Invoice.pdf

Convert to PDF: configuración

Acción PDF4me Convertir a PDF con el contenido del archivo establecido en el token Contenido del archivo de salida de Excel Rellenar y el nombre del archivo establecido en Invoice.pdf, conectado a PDF4me Convertir

Output File Content es el libro de trabajo con los datos completados. Nunca se almacena en SharePoint como un archivo .xlsx.

Consejo: El flujo capturado pasa Invoice.pdf como File Name y aun así se convierte correctamente. Sin embargo, la referencia Convert to PDF solicita la extensión del archivo de origen, por lo que Invoice.xlsx es el valor más seguro al crear el suyo propio.

Configure el diseño de página en la plantilla, no en el flujo. Convert to PDF sigue la configuración de página del libro de trabajo. La plantilla de ejemplo es ligeramente más ancha que una página Letter, por lo que la factura capturada tiene las columnas A a D en la página uno y solo la columna Tax % en la página dos. Abra la plantilla en Excel, vaya a Page Layout y configure Scale to Fit > Width a 1 page, luego guárdela en SharePoint. Todas las facturas posteriores se ajustarán a una página.


Paso 6: ¿Cómo se comprime la factura y se convierte a PDF/A?

Flujo hasta ahora: todo a través de Convert to PDF.

La conexión PDF4me PDF realiza dos acciones: primero, comprimir y, segundo, certificar. Si se invirtieran, la compresión sobrescribiría un archivo que ya cumpliera con los requisitos.

  1. Agregar PDF - Compress.
    • File Content: el token Body de Convert to PDF
    • File Name: el token headers/FileName que se conserva de la acción anterior
    • Optimize Profile: Web
  2. Agregar PDF - Create PdfA.
    • File Content: el token Body del PDF - Compress
    • File Name: el token headers/FileName
    • Compliance: PdfA2b
    • Allow Upgrade: Yes
    • Allow Downgrade: Yes

Compress y Create PdfA: parámetros

AcciónParámetroValor utilizado aquíLo que controla
PDF - CompressOptimize ProfileWebSe sacrifica la calidad por el tamaño. Una factura con texto y tabla, sin imágenes, tiene poco margen de deterioro.
PDF - Create PdfACompliancePdfA2bISO 19005-2, nivel B. La página se visualiza de la misma manera en cualquier visor, incluso dentro de unos años.
PDF - Create PdfAAllow UpgradeYesPermite que la acción se estabilice en un nivel superior cuando el nivel solicitado no está disponible.
PDF - Create PdfAAllow DowngradeYesPermite que se estabilice en un nivel inferior en lugar de fracasar por completo.
Acción PDF4me PDF Compress con el contenido del archivo establecido en el token Body, el nombre del archivo establecido en el token FileName de los encabezados y el perfil de optimización establecido en Web, conectado a PDF4me PDF

Compress trabaja sobre la factura convertida, antes de que se certifique nada.

PDF4me PDF Crear acción PdfA con Contenido del archivo establecido en el token Cuerpo, Nombre del archivo establecido en el token Nombre del archivo de encabezado, Cumplimiento PdfA2b, Permitir actualización Sí y Permitir degradación Sí, conectado a PDF4me PDF

La acción Create PdfA es la última que se realiza sobre el documento, que es precisamente donde debe estar.

El mismo par realiza la misma tarea en archivos que ya están en SharePoint en el archivado de PDF en Power Automate con una carpeta de SharePoint desatendida.


Paso 7: ¿Dónde se guarda la factura finalizada?

Flujo hasta ahora: todo a través Create PdfA.

La última acción consiste en volver a guardar la factura certificada en el mismo sitio de SharePoint.

  1. Agregar 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: el token Body del PDF - Create PdfA

SharePoint Create file: configuración

Acción de creación de archivo de SharePoint con dirección de sitio PDF4me SharePoint, ruta de carpeta /Shared Documents/ArchivedExcel, nombre de archivo ExcelArchived.pdf y contenido de archivo establecido en el token Body de PDF Create PdfA, conectado a SharePoint

Cada acción de PDF4me genera un token llamado Body, por lo que la etiqueta por sí sola no indica cuál se seleccionó. Pase el cursor sobre él o consulte la vista de código para encontrar body('PDF_-_Create_PdfA').

Modifique esto antes de la publicación. ExcelArchived.pdf es un nombre fijo, por lo que cada nuevo elemento de la lista se escribe en el mismo archivo y la carpeta nunca contiene más que la última factura. En su lugar, genere el nombre a partir de la fila. El ID del elemento de la lista es único por definición, por lo que concat('Invoice-', triggerBody()?['ID'], '.pdf') siempre funciona. El número de factura en Title también funciona, siempre que no contenga caracteres que SharePoint rechace en los nombres de archivo, como una barra, dos puntos, un asterisco o un signo de interrogación.


Ejecuta el flujo y verifica

  1. Save el flujo en la parte superior derecha.
  2. Agregue un nuevo elemento a la lista llamado Excel Template y complete todas las columnas que utiliza la plantilla.
  3. Abre el historial de ejecución. Las ocho acciones deberían aparecer en verde, siendo Convert, Compress y Create PdfA las que consumen más tiempo.
  4. Abra /Shared Documents/ArchivedExcel y compruebe que el PDF esté allí, con la cuenta Modified By mostrándose esta.
  5. Abra el archivo y compárelo con la fila de la lista; luego, verifique las propiedades del documento para la declaración PDF/A.

La factura de la ejecución capturada tiene 37.876 bytes. Muestra la fila Morris - INV: cliente Morris Luma en Invoicing.co, con fecha 1 de septiembre de 2026 y vencimiento 20 de septiembre de 2026, con dos partidas, PDF to Excel (cantidad 60) y PDFA (cantidad 45). Sus metadatos XMP declaran pdfaid:part como 2 y pdfaid:conformance como B, que es PDF/A-2b visto desde dentro. Son dos páginas en lugar de una, por el motivo de configuración de página que se explica en el paso 5.

¿Qué creaste exactamente? Un sistema de facturación donde el único paso manual es ingresar los datos. El diseño se encuentra en un archivo de Excel que cualquiera puede editar, los datos están en una lista y la salida es un archivo PDF autocontenido que se archiva automáticamente sin que nadie decida archivarlo. Este patrón tampoco está vinculado a Power Automate: se puede usar en Make, Zapier y n8n donde estén disponibles las acciones PDF4me Excel y PDF/A.


Variaciones comunes que puedes agregar sin reconstruir

Enviar la factura por correo electrónico al cliente
Agregue Office 365 Outlook Send an email (V2) después Create file. Coloque la columna Correo electrónico del cliente en Para y adjunte el Body de la salida de PDF - Create PdfA, para que el cliente reciba el mismo archivo PDF/A que se archivó.
Formatee las fechas de la forma en que sus clientes las leen
El ejemplo imprime 2026-09-01 porque así es como el disparador devuelve una fecha. Envuelva las expresiones Date y DueDate en Compose con formatDateTime y un patrón como 'dd MMM yyyy'.
Sume los totales de cada línea y el total general
Introduce las fórmulas en la plantilla, configura Strict JSON Strings en No para que las cantidades y los precios lleguen como números, y deja Calculate Formulas en Sí para que los totales ya estén calculados antes de la conversión.
Verifica el estándar en lugar de asumirlo
Agregue Validate PDFA después de Create PdfA y bifurque según el resultado. De esta manera, una conversión fallida aparecerá en el historial de ejecución en lugar de en una auditoría.

¿Cómo se compara esto con otras formas de generar facturas?

Cada fila describe la alternativa. La última fila muestra este flujo.

Comparación¿Quién puede cambiar el diseño?Cómo se rellena la plantillaFormato de archivo
Plantilla de Excel rellenada manualmente frente a este flujoCualquier persona que use ExcelCopiar y pegar, una factura a la vezPDF simple a menos que alguien configure la opción de exportación PDF/A
Macro VBA de Excel frente a este flujoQuienquiera que mantenga la macroAutomáticamente, en un ordenador de escritorio con el libro de trabajo abiertoPDF plano a menos que la exportación esté configurada para PDF/A
Plantilla HTML más Convert HTML a PDF vs este flujoAlguien con conocimientos de HTML y CSSAutomáticamente, en la nubePDF
Este flujoCualquier persona que use ExcelAutomáticamente, en cada nuevo elemento de la listaPDF/A-2b

La diferencia clave es la siguiente: los dos primeros métodos conservan el diseño en Excel, pero mantienen a una persona involucrada, mientras que el tercero elimina a la persona, pero traslada el diseño al código. Solo este método logra ambas cosas.


Preguntas frecuentes

¿Existe alguna plantilla de factura en Excel?

Sí. Excel incluye plantillas de factura: en la aplicación de escritorio, seleccione File > New y busque factura. Microsoft también publica más plantillas en su galería en línea. Están diseñadas para rellenarse a mano.

La plantilla utilizada en esta publicación está diseñada para una tarea diferente. Sus celdas de valor contienen marcadores inteligentes en lugar de texto de ejemplo, de modo que un flujo puede rellenarlas. Puedes convertir cualquier plantilla de factura que ya te guste de la misma manera: conserva el diseño y reemplaza cada valor con un marcador como &=RootData.Invoice.Number(noadd).

¿Cómo generar una factura a partir de datos de Excel?

Mantén los datos en filas, el diseño en una plantilla y deja que algo combine ambos. Dentro de Excel, ese algo es una combinación de correspondencia de Word o una macro VBA, y ambas se ejecutan en el ordenador de alguien.

En este flujo, las filas se encuentran en una lista de SharePoint, Compose convierte una fila en JSON y Excel - Populate Rellenar la integra en la plantilla. Si sus datos ya son una tabla de Excel en OneDrive o SharePoint, la acción List rows present in a table del conector Excel Online (Business) puede alimentar la misma Compose dentro de un bucle Apply to each elemento, con items('Apply_to_each') en lugar de triggerBody(). Todo lo demás, a partir del paso 3, permanece sin cambios.

¿Cómo automatizar las facturas en Excel?

Automatizar una factura significa eliminar todos los pasos que una persona realiza por cada factura: ingresar los valores, exportar a PDF, nombrar el archivo y archivarlo. La plantilla en sí sigue siendo un archivo de Excel normal.

Este flujo elimina los cuatro elementos. La única entrada es la fila de la lista. La plantilla se rellena con Excel - Populate, se exporta con Convert to PDF, se archiva con PDF - Create PdfA y se archiva con Create file. Una vez que se genera el nombre del archivo a partir de la fila, como se describe en el paso 7, no queda nada más que hacer manualmente.

¿Puede Power Automate convertir archivos Excel a PDF?

Sí. En un flujo en la nube, la acción Convert file del conector de OneDrive for Business convierte un archivo .xlsx en un PDF, pero solo para un archivo almacenado en OneDrive, por lo que los flujos de SharePoint a menudo copian primero el libro de trabajo allí y luego lo eliminan.

PDF4me Convert to PDF toma el contenido del archivo directamente de cualquier acción anterior. Por eso, el libro de trabajo completado en este proceso nunca se guarda en ningún lugar: pasa directamente de Excel - Populate al convertidor, y el único archivo que llega a SharePoint es la factura PDF/A finalizada.


Solución de problemas

Un campo de la factura aparece en blanco

Verifique el nombre de la columna dentro de la expresión Compose. Debe ser el nombre interno, Dateandtime, en lugar de Date and time. El signo de interrogación en triggerBody()?['Dateandtime'] convierte un nombre incorrecto en null en lugar de un error, por lo que la ejecución permanece en verde y la celda permanece vacía. Si el nombre es correcto, verifique la ruta JSON con el marcador: RootData, luego Customer, luego Name, escrito de la misma manera en ambos.

La factura tiene dos páginas, con una columna en la página dos

La plantilla es más ancha que una página impresa. Convert to PDF respeta la configuración de página del libro de trabajo, así que corríjala allí: Page Layout, Scale to Fit, Ancho 1 page. Guarde la plantilla en SharePoint y la próxima vez se ajustará a una página.

Solo hay un archivo de factura en ArchivedExcel

El File Name Create file es el texto fijo ExcelArchived.pdf, por lo que cada ejecución apunta al mismo nombre. Asegúrese de que sea único para cada fila con el ID del elemento de la lista, como se describe en el paso 7.

El PDF se abre correctamente, pero no es PDF/A

Create file está leyendo desde PDF - Compress o Convert to PDF en lugar de PDF - Create PdfA. Los tres tokens están etiquetados como Body, por lo que es fácil cometer el error y nada en el historial de ejecución parece incorrecto. Confirme que la expresión es body('PDF_-_Create_PdfA').


Próximos pasos

El mismo patrón de ocho pasos (listar filas, reformatear a JSON, obtener la plantilla, rellenar, convertir, comprimir, certificar, guardar) se aplica a cualquier documento que comience como una hoja de cálculo: presupuestos, albaranes, extractos y certificados.