Saltar al contenido principal

Rellenar una plantilla de Excel a partir de JSON en Power Automate: un flujo de trabajo de Dropbox en 4 pasos con Aspose Smart Markers

· 19 min de lectura
SEO and Content Writer

Arrastra una plantilla de Excel que utiliza Marcadores inteligentes Aspose (células escritas como &=RootData.Items.ItemName) en Dropbox, pegue una carga útil JSON coincidente en un flujo de Power Automate y el libro de trabajo completado volverá a Dropbox con los totales ya calculados. Esta guía explica el proceso. flujo exacto de cuatro acciones Como se muestra en las capturas de pantalla: Disparador manual, Dropbox Obtener el contenido del archivo usando la ruta, PDF4me Excel - Rellenary Dropbox Crear archivoCada valor de campo proviene de una ejecución real; la plantilla de entrada, la carga útil JSON y el libro de trabajo de salida están vinculados al final.

El flujo de un vistazo
1. Manual trigger
Manually trigger a flow. Replace with any trigger later.
2. Get file content (path)
Dropbox path: /pdf4metest/excel/populate excel/aspose template.xlsx
3. Excel - Populate
PDF4me action. JSON Data with RootData.Items array. Worksheet Indexes: 1 (Invoice sheet).
4. Create file
Dropbox /pdf4metest/excel/populate excel/output, name Excel_populate.xlsx.
La versión corta

Un activador manual inicia el flujo. Dropbox Obtener el contenido del archivo usando la ruta lecturas Plantilla Aspose.xlsx (el libro de trabajo contiene un archivo Excel real) Mesa llamado Factura simple con células como &=RootData.Items.ItemName en la fila 2). PDF4me Excel - Rellenar Combina la carga útil JSON (3 registros: Laptop, Mouse's, Keyboard) en el índice de la hoja de cálculo. 1 con fórmulas recalculadas. Dropbox Crear archivo escribe Excel_rellenar.xlsx (Subtotal de la factura) $1,635.00Impuesto sobre las ventas $98.10, TOTAL $1,585.00) de vuelta a /producción.

Las dos cosas que determinan si tu resultado es correcto

Primero, el Las claves de nivel superior de los datos JSON deben coincidir con los nombres de las fuentes de datos. utilizados en los marcadores celulares. Marcadores como &=RootData.Items.ItemName requerir que el JSON envuelva los registros bajo RootData.Items[]. Los nombres de los campos distinguen entre mayúsculas y minúsculas. Segundo, el Índices de hojas de trabajo El campo está basado en 1 y separado por comas. La plantilla incluye tres hojas (Factura, Hoja1, Hoja2). Aprobar 1 para rellenar únicamente la hoja de factura enriquecida que se muestra en esta guía.

Lo que estás construyendo

Un flujo de Power Automate de cuatro acciones que convierte una plantilla de Excel predefinida, junto con una carga útil JSON, en un libro de trabajo completo con fórmulas en tiempo real. Este mismo patrón funciona para facturas, informes de inventario, resúmenes de nómina, resúmenes de ventas y cualquier otro documento de Excel cuya estructura se mantenga, pero cuyas filas cambien en cada ejecución.

Flujo de Power Automate con cuatro acciones: Activar manualmente un flujo, Obtener contenido de archivo de Dropbox mediante ruta, Rellenar archivos de PDF4me Excel, Crear archivo de Dropbox. Cada acción muestra la duración de la ejecución (0 s, 1 s, 0,7 s, 1 s) y una marca de verificación verde.
El proceso completo se ejecuta en menos de 3 segundos de principio a fin.

Lo que necesitas

  • Power Automate Cuenta con un flujo abierto en el diseñador de la nube.
  • Clave API de PDF4me. Obtén tu clave APIAgregue la conexión PDF4me Connect la primera vez que ejecute la acción.
  • Dropbox Con dos carpetas preparadas: una para la plantilla y otra para el resultado. (Funciona cualquier sistema de almacenamiento: SharePoint (obtener contenido del archivo), OneDrive (obtener contenido del archivo) y Dataverse (descargar archivo) se asignan de la misma manera).
  • Una plantilla de Excel que utiliza marcadores inteligentes de Aspose. Descargar plantilla.xlsx (también conocido como Plantilla Aspose.xlsx (en las capturas de pantalla) para seguir las instrucciones al pie de la letra.
  • Datos de muestra JSON. Descargar hoja1-datos.json (el anidado RootData.Items carga útil utilizada en la ejecución).

Un recorrido por la plantilla de entrada

Antes de crear el flujo, es útil ver cómo se ven realmente los marcadores inteligentes dentro del archivo de Excel. Abra el Factura hoja de template.xlsxLa fila 1 es el encabezado. La fila 2 contiene los marcadores (uno por columna). Las filas 3 a 6 son filas vacías preformateadas. Debajo se encuentra un bloque de totales con un SimpleInvoice Agregación de tablas de Excel.

Hoja de cálculo de factura de Excel. La fila de encabezado (1) contiene Nombre del artículo, Descripción, Cantidad, Precio unitario, Descuento, Precio. La fila 2 contiene las celdas de Marcador inteligente: &=RootData.Items.ItemName, &=RootData.Items.Description, &=RootData.Items.Qty, &=RootData.Items.UnitPrice, &=RootData.Items.Discount, &=RootData.Items.Price. Debajo del bloque de datos, un bloque Subtotal de factura $0.00, Tasa de impuestos 6.00%, Impuesto sobre las ventas $0.00, Depósito recibido $50.00, TOTAL -$50.00.
La plantilla antes de la población. Marcadores en la fila 2; las fórmulas de subtotal / impuesto / total hacen referencia a la Factura simple Tabla de Excel.

Los seis marcadores son:

CelúlaMarcador
B2&=RootData.Items.ItemName
C2&=RootData.Items.Description
D2&=RootData.Items.Qty
E2&=RootData.Items.UnitPrice
F2&=RootData.Items.Discount
G2&=RootData.Items.Price

El bloque de totales utiliza referencias estructuradas en lugar de direcciones A1 simples:

G7 =SUM(SimpleInvoice[Price])
G9 =IFERROR(G7*G8,"")
G11 =SUM(G2:G4)-G10

Cuando Excel - Rellenar expande la fila del marcador de 1 registro a 3, SimpleInvoice El rango de la tabla crece automáticamente y SUM(SimpleInvoice[Price]) Sigue sumando la columna derecha. Esa es la razón principal por la que este patrón es mejor que escribir fórmulas manualmente fila por fila.


Construye el flujo

Acción 1: Activar manualmente un flujo

Para realizar pruebas, el disparador manual es el más rápido. En producción, reemplácelo con Cuando se crea un archivo (Dropbox), Cuando se crea o modifica un elemento (SharePoint), Reaparicióno cualquier evento que te proporcione una nueva carga útil JSON.

Acción 2: Dropbox - Obtener el contenido del archivo usando la ruta

Colocar Ruta del archivo a la ruta completa de Dropbox de la plantilla, incluyendo el nombre del archivo:

/pdf4metest/excel/populate excel/aspose template.xlsx

Bajo Parámetros avanzados, Inferir tipo de contenido está configurado para (el valor predeterminado).

Dropbox obtiene el contenido del archivo usando la ruta. La ruta del archivo está configurada como /pdf4metest/excel/populate excel/aspose template.xlsx. El parámetro avanzado Inferir tipo de contenido está activado.
Dropbox Obtener el contenido del archivo usando la ruta con la ruta de archivo exacta utilizada en la ejecución.

Acción 3: PDF4me - Excel - Rellenar

Aquí es donde se produce la fusión. Buscar PDF4me en el selector de acciones, luego seleccione Excel - RellenarConfigure estos campos:

CampoValor utilizado en la ejecución
File ContentFile Content from the previous Dropbox step (dynamic content)
JSON DataNested RootData.Items[] array with 3 records (Laptop, Mouse's, Keyboard)
File NamePopulate.xlsx
Worksheet Indexes1 (Invoice sheet)

La carga útil completa de datos JSON (copiar y pegar desde sheet1-data.json):

{
"RootData": {
"Items": [
{ "ItemName": "Laptop", "Description": "Dell Inspiron 15", "Qty": 2, "UnitPrice": 750, "Discount": 50, "Price": 1450 },
{ "ItemName": "Mouse's", "Description": "Wireless Mouse", "Qty": 3, "UnitPrice": 25, "Discount": 0, "Price": 75 },
{ "ItemName": "Keyboard", "Description": "Mechanical Keyboard", "Qty": 1, "UnitPrice": 120, "Discount": 10, "Price": 110 }
]
}
}
PDF4me Excel - Acción de rellenar con el contenido del archivo asignado desde el paso anterior de Dropbox. Cuadro de texto de datos JSON que contiene la matriz anidada RootData.Items con registros de Laptop, Mouse y Keyboard. Nombre del archivo Populate.xlsx. Índices de la hoja de cálculo 1.
Excel - Rellenar con el bloque de datos JSON exacto y establecer los índices de la hoja de cálculo en 1.

Expandir Parámetros avanzados para los cuatro controles opcionales. Los valores predeterminados suelen ser correctos, pero las capturas de pantalla muestran cómo se ve cada valor en la interfaz de usuario:

Parámetros avanzados de Excel - Rellenar. Cadenas JSON estrictas Sí. Configuración de cultura e idioma en-US. Calcular fórmulas Sí. Prefijo de comillas al estilo Sí.
Las cuatro configuraciones avanzadas utilizadas en la ejecución.
Campo avanzadoValorPor qué esto es importante
Strict JSON StringsYesPreserves quoted string primitives (like "55") as text in cells. Set No to coerce them to numbers during merge.
Culture & Language Settingsen-USControls number, date, and currency formatting written into cells. Use fr-FR, de-DE, ja-JP, etc. for non-US locales.
Calculate FormulasYesRecalculates the workbook after population so totals are accurate at open. Set No to skip and recalc downstream.
Quote Prefix To StyleYesCarries Excel's quote-prefix onto styled values so account numbers and ZIPs stay text.

Acción 4: Dropbox - Crear archivo

El último paso consiste en volver a subir el libro de trabajo con los datos a Dropbox:

CampoValor
Ruta de la carpeta/pdf4metest/excel/populate excel/output
Nombre del archivoExcel_populate.xlsx
Contenido del archivoContenido del archivo de salida (Contenido dinámico de Excel - Rellenar)
Acción de creación de archivo de Dropbox. Ruta de la carpeta /pdf4metest/excel/populate excel/output. Nombre del archivo Excel_populate.xlsx. Contenido del archivo asignado desde Excel - Populate.
Dropbox crea un archivo con el libro de trabajo completado en el espacio Contenido del archivo.

Ese es todo el proceso. Guarda y haz clic. Prueba.


El resultado

Cuando abres Excel_populate.xlsx del /output En la carpeta, la hoja de factura ahora contiene los tres registros en las filas 2 a 4, y el bloque de totales ha calculado valores en vivo a partir de la SimpleInvoice agregación de tablas.

Hoja de factura completada. Fila 2: Laptop / Dell Inspiron 15 / 2 / 750 / $50.00 / $1,450.00. Fila 3: Mouses / Wireless Mouse / 3 / 25 / $0.00 / $75.00. Fila 4: Keyboard / Mechanical Keyboard / 1 / 120 / $10.00 / $110.00. Subtotal de la factura $1,635.00, Tasa de impuesto 6.00%, Impuesto sobre las ventas $98.10, Depósito recibido $50.00, TOTAL $1,585.00.
El mismo libro de trabajo después de ejecutar el flujo. Se completaron tres registros: subtotal, impuesto sobre las ventas y total calculado en tiempo real.

La prueba numérica exacta de que las fórmulas se recalcularon correctamente:

CelúlaFórmulaResultado
G7=SUM(SimpleInvoice[Price])$1,635.00 (1450 + 75 + 110)
G9=IFERROR(G7*G8,"") con G8 = 6,00%$98.10
G10Estático 50$50.00 (Depósito recibido)
G11=SUM(G2:G4)-G10$1,585.00 (1635 + 98,10 - 50 ≈ visualización redondeada)

Descargue el libro de trabajo de salida real generado por esta ejecución: output-excel-populate.xlsx.


Solución de problemas

Una columna queda vacía. El nombre de su propiedad JSON no coincide con el nombre del campo del marcador. Los marcadores distinguen entre mayúsculas y minúsculas. &=RootData.Items.ItemName NO recogerá itemName del JSON.

Se ha cargado la hoja incorrecta. Controlar Índices de hojas de trabajoEl valor está basado en 1 (no en 0). Aprobar 1 para la primera hoja, 2 para el segundo, etc. Déjelo vacío para rellenar todas las hojas.

Los totales se muestran $0.00 después de la carrera. Calcular fórmulas está configurado para NoCámbialo a .

Las cadenas de texto que parecían numéricas se convirtieron en números (o viceversa). Alternar Cadenas JSON estrictas. conserva los elementos JSON primitivos entre comillas como texto. No los coacciona.

Los separadores decimales o los formatos de fecha no se ven bien en tu configuración regional. Cambiar Contextos culturales y lingüísticos. en-US, fr-FR, de-DE, ja-JP, etc. son todos válidos.

Los datos llegan, pero solo se rellena la primera fila, incluso cuando se envían varios registros. El marcador fue creado con el (noadd) modificador (&=RootData.Items.ItemName(noadd)). Elimine el modificador para que el motor inserte nuevas filas.


Cuándo utilizar este patrón

  • Generación de facturas a partir de las partidas del CRM. Extrae líneas de Dynamics, Salesforce o HubSpot y consérvalas en una matriz JSON Items; renderízalas con una plantilla de factura de Excel diseñada.
  • Informes mensuales de inventario y ventas. La combinación de un disparador recurrente, filas de la lista de Dataverse y este flujo le proporciona un documento de Excel impecable en cuestión de minutos.
  • Lista de recursos humanos, resumen de nómina, informes de gastos. En cualquier lugar donde un diseño de Excel predefinido se combine con datos de filas nuevas.
  • Los archivos Excel que el destinatario abrirá y editará. Excel - Rellenar devuelve nativo .xlsx (no es un PDF), para que los destinatarios puedan ordenar, filtrar y ajustar las fórmulas posteriormente.

¿Qué leer a continuación?


Preguntas frecuentes

What is the difference between this and Generate Document Single?+
Excel - Populate is the right action when your deliverable is native .xlsx with live formulas and Excel Tables. Generate Document Single targets Word, HTML, or PDF templates and produces a Word, PDF, Excel, or HTML output (template engine is mustache-style, not Smart Markers). Choose based on whether the recipient will work with the file inside Excel or just consume the rendered output.
Does this work with SharePoint or OneDrive instead of Dropbox?+
Yes. Swap the Dropbox actions for SharePoint Get file content / Create file, or OneDrive Get file content / Create file. The Excel - Populate action and all its parameters are identical regardless of the storage source.
How big can the JSON Data payload be?+
Practical limits are bounded by the Power Automate action body size cap (about 100 MB on premium plans, smaller on standard) plus Excel cell limits. For larger payloads, write the JSON to a SharePoint or OneDrive file and reference it via a custom dispatcher pattern, or split the work into one call per sheet using Worksheet Indexes.
Can I populate multiple sheets in a single call?+
Yes. Leave Worksheet Indexes empty (populates every sheet) or pass a comma-separated list like 1,3. The JSON Data top-level keys must contain a data source for each sheet you want populated.
Does this work in Power Automate Desktop?+
PDF4me Connect is a cloud connector available in Power Automate (the web flow designer). For Power Automate Desktop, call the Excel Populate REST endpoint with the HTTP action.
Can I trigger this from email, SharePoint, or a webhook instead of manually?+
Yes. Replace the manual trigger with When a new email arrives (Outlook), When a file is created (Dropbox / SharePoint / OneDrive), When an HTTP request is received, or any other trigger that produces a fresh JSON payload. The remaining three actions stay identical.

Comience