Aller au contenu principal

Remplir un modèle Excel à partir de JSON dans Power Automate : un flux de travail Dropbox en 4 étapes avec les marqueurs intelligents Aspose

· 19 minutes de lecture
SEO and Content Writer

Déposez un modèle Excel qui utilise Marqueurs intelligents Aspose (cellules écrites comme &=RootData.Items.ItemName) dans Dropbox, collez une charge utile JSON correspondante dans un flux Power Automate, et le classeur rempli est renvoyé dans Dropbox avec les totaux déjà calculés. Ce guide décrit la procédure flux exact à quatre actions Comme le montrent les captures d'écran : déclencheur manuel, Dropbox Récupérer le contenu du fichier à l'aide du chemin d'accès, PDF4me Excel - Rempliret Dropbox Créer un fichierChaque valeur de champ provient d'une exécution réelle ; le modèle d'entrée, la charge utile JSON et le classeur de sortie sont tous liés à la fin.

Aperçu du flux
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 version courte

Un déclencheur manuel lance le flux. Dropbox Récupérer le contenu du fichier à l'aide du chemin d'accès lectures Modèle Aspose.xlsx (le classeur contient un véritable fichier Excel) Tableau nommé Facture simple avec des cellules comme &=RootData.Items.ItemName dans la rangée 2). PDF4me Excel - Remplir fusionne la charge utile JSON (3 enregistrements : Ordinateur portable, Souris, Clavier) dans l'index de la feuille de calcul 1 avec des formules recalculées. Dropbox Créer un fichier écrit Excel_populate.xlsx (Sous-total de la facture) 1 635,00 $Taxe de vente 98,10 $, TOTAL 1 585,00 $) de retour dans /sortir.

Les deux éléments qui déterminent si votre résultat est correct

Premièrement, le Les clés de premier niveau des données JSON doivent correspondre aux noms de la source de données utilisés dans les marqueurs cellulaires. Des marqueurs comme &=RootData.Items.ItemName exiger que le JSON encapsule les enregistrements sous RootData.Items[]Les noms de champs sont sensibles à la casse. Deuxièmement, Index des feuilles de travail Le champ est indexé à partir de 1 et les valeurs sont séparées par des virgules. Le modèle est fourni avec trois feuilles (Facture, Feuille1, Feuille 2). Passer 1 pour remplir uniquement la feuille de facture détaillée présentée dans ce guide.

Ce que vous êtes en train de construire

Un flux Power Automate en quatre étapes qui convertit un modèle Excel personnalisé et une charge utile JSON en un classeur Excel complet avec des formules dynamiques. Ce même principe s'applique aux factures, aux rapports d'inventaire, aux récapitulatifs de paie, aux récapitulatifs des ventes et à tout autre document Excel dont la structure reste inchangée, mais dont le nombre de lignes varie à chaque exécution.

Flux Power Automate avec quatre actions : déclenchement manuel, récupération du contenu d’un fichier Dropbox à partir de son chemin, remplissage d’un fichier Excel avec PDF4me et création d’un fichier Dropbox. Chaque action affiche sa durée d’exécution (0 s, 1 s, 0,7 s, 1 s) et une coche verte.
Le flux complet s'exécute en moins de 3 secondes de bout en bout.

Ce dont vous avez besoin

  • Power Automate compte avec un flux ouvert dans le concepteur cloud.
  • Clé API PDF4me. Obtenez votre clé APIAjoutez la connexion PDF4me Connect lors de la première exécution de l'action.
  • Dropbox Deux dossiers sont prêts : un pour le modèle et un pour le fichier de sortie. (Tout système de stockage est compatible : SharePoint (Obtenir le contenu du fichier), OneDrive (Obtenir le contenu du fichier) et Dataverse (Télécharger le fichier) fonctionnent de la même manière.)
  • Un modèle Excel utilisant Aspose Smart Markers. Télécharger modèle.xlsx (également appelé Modèle Aspose.xlsx (dans les captures d'écran) pour suivre exactement.
  • Exemple de données JSON. Télécharger feuille1-données.json (l'imbriqué) RootData.Items charge utile utilisée lors de l'exécution).

Visite guidée du modèle de saisie

Avant de créer le flux, il est utile de voir à quoi ressemblent les marqueurs intelligents dans le fichier Excel. Ouvrez le Facture feuille de template.xlsxLa ligne 1 est l'en-tête. La ligne 2 contient les marqueurs (un par colonne). Les lignes 3 à 6 sont des lignes vides préformatées. En dessous se trouve un bloc de totaux. SimpleInvoice Agrégation de tableaux Excel.

Feuille de calcul Excel pour factures. La première ligne (en-tête) contient le nom de l'article, sa description, la quantité, le prix unitaire, la remise et le prix. La deuxième ligne contient les cellules avec marqueurs intelligents : &=RootData.Items.ItemName, &=RootData.Items.Description, &=RootData.Items.Qty, &=RootData.Items.UnitPrice, &=RootData.Items.Discount, &=RootData.Items.Price. Sous le bloc de données, on trouve : Sous-total de la facture : 0,00 $, Taux de taxe : 6,00 %, Taxe de vente : 0,00 $, Acompte reçu : 50,00 $, TOTAL : -50,00 $.
Modèle avant le recensement. Marqueurs en ligne 2 ; les formules de sous-total/taxe/total font référence à Facture simple Tableau Excel.

Les six marqueurs sont :

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

Le bloc des totaux utilise références structurées au lieu des simples adresses A1 :

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

Lorsque Excel - Remplir étend la ligne de marqueur de 1 enregistrement à 3, SimpleInvoice La plage de valeurs du tableau s'étend automatiquement, et SUM(SimpleInvoice[Price]) La fonction additionne automatiquement la colonne de droite. C'est la raison même pour laquelle ce modèle est plus avantageux que d'écrire manuellement des formules pour chaque ligne.


Construisez le flux

Action 1 : Déclencher manuellement un flux

Pour les tests, la gâchette manuelle est la plus rapide. En production, remplacez-la par Lorsqu'un fichier est créé (Dropbox), Lorsqu'un élément est créé ou modifié (SharePoint), Récurrenceou tout événement qui vous fournit une nouvelle charge utile JSON.

Action 2 : Dropbox - Récupérer le contenu d'un fichier à partir de son chemin d'accès

Ensemble Chemin du fichier au chemin d'accès complet du modèle sur Dropbox, y compris le nom du fichier :

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

Sous Paramètres avancés, Déduire le type de contenu est réglé sur Oui (par défaut).

Action Dropbox : Récupérer le contenu du fichier à partir du chemin d'accès. Le chemin d'accès est défini sur /pdf4metest/excel/populate excel/aspose template.xlsx. L'option « Déduire le type de contenu » est activée dans les paramètres avancés.
Récupérer le contenu du fichier Dropbox en utilisant le chemin d'accès exact utilisé lors de l'exécution.

Action 3 : PDF4me - Excel - Remplir

C'est ici que la fusion a lieu. Recherchez PDF4me dans le sélecteur d'actions, puis choisissez Excel - RemplirConfigurez ces champs :

ChampValeur utilisée dans l'exécution
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 charge utile complète des données JSON (copier-coller depuis 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 - Action « Remplir » avec le contenu du fichier mappé à partir de l'étape Dropbox précédente. Zone de texte « Données JSON » contenant le tableau imbriqué RootData.Items avec les enregistrements Ordinateur portable, Souris et Clavier. Nom du fichier : Populate.xlsx. Index de la feuille de calcul : 1.
Excel - Remplir avec le bloc de données JSON exact et définir les index de feuille de calcul sur 1.

Développer Paramètres avancés pour les quatre options. Les valeurs par défaut sont généralement correctes, mais les captures d'écran montrent à quoi ressemble chaque valeur dans l'interface utilisateur :

Paramètres avancés d'Excel - Remplissage. Chaînes JSON strictes : Oui. Paramètres de langue et de culture : en-US. Calcul des formules : Oui. Préfixe de guillemets pour le style : Oui.
Les quatre paramètres avancés utilisés lors de l'exécution.
Domaine avancéValeurPourquoi c'est important
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.

Action 4 : Dropbox - Créer un fichier

La dernière étape consiste à réimporter le classeur rempli dans Dropbox :

ChampValeur
Chemin du dossier/pdf4metest/excel/populate excel/output
Nom de fichierExcel_populate.xlsx
Contenu du fichierContenu du fichier de sortie (Contenu dynamique provenant d'Excel - Remplissage)
Action de création de fichier Dropbox. Chemin du dossier : /pdf4metest/excel/populate excel/output. Nom du fichier : Excel_populate.xlsx. Contenu du fichier : mappé depuis Excel - Remplissage.
Dropbox Créer un fichier avec le classeur rempli dans l'emplacement Contenu du fichier.

Voilà le déroulement complet. Enregistrez et cliquez. Test.


Le résultat

Lorsque vous ouvrez Excel_populate.xlsx de la /output Dans le dossier, la feuille « Facture » contient désormais les trois enregistrements sur les lignes 2 à 4, et le bloc « Totaux » a calculé les valeurs en temps réel à partir de SimpleInvoice Agrégation de tableaux.

Facture complétée. Ligne 2 : Ordinateur portable / Dell Inspiron 15 / 2 / 750 / 50,00 $ / 1 450,00 $. Ligne 3 : Souris / Souris sans fil / 3 / 25 / 0,00 $ / 75,00 $. Ligne 4 : Clavier / Clavier mécanique / 1 / 120 / 10,00 $ / 110,00 $. Sous-total de la facture : 1 635,00 $, Taux de TVA : 6,00 %, TVA : 98,10 $, Acompte reçu : 50,00 $, TOTAL : 1 585,00 $.
Le même classeur après l'exécution du flux. Trois enregistrements ont été renseignés : le sous-total, la taxe de vente et le total calculé en temps réel.

La preuve numérique exacte que les formules ont été recalculées correctement :

CelluleFormuleRésultat
G7=SUM(SimpleInvoice[Price])1 635,00 $ (1450 + 75 + 110)
G9=IFERROR(G7*G8,"") avec G8 = 6,00%98,10 $
G10Statique 5050,00 $ (Dépôt reçu)
G11=SUM(G2:G4)-G101 585,00 $ (1635 + 98,10 - 50 ≈ affichage arrondi)

Téléchargez le classeur de résultats généré par cette exécution : output-excel-populate.xlsx.


Dépannage

Une colonne sort vide. Le nom de votre propriété JSON ne correspond pas au nom du champ marqueur. Les marqueurs sont sensibles à la casse. &=RootData.Items.ItemName ne répondra PAS itemName à partir du JSON.

La mauvaise feuille de calcul a été remplie. Vérifier Index des feuilles de travailLa valeur est indexée à partir de 1 (et non de 0). Réussir 1 pour la première feuille, 2 pour la deuxième, etc. Laisser vide pour remplir chaque feuille.

Les totaux affichent $0.00 après la course. Formules de calcul est réglé sur NonPassez-le à Oui.

Les chaînes de caractères qui semblaient numériques ont été converties en nombres (ou inversement). Basculer Chaînes JSON strictes. Oui conserve les primitives JSON entre guillemets sous forme de texte. Non les contraint.

Les séparateurs décimaux ou les formats de date semblent incorrects pour votre langue. Changement Paramètres de culture et de langue. en-US, fr-FR, de-DE, ja-JP, etc. sont tous valides.

Les données sont bien reçues, mais seule la première ligne est remplie, même si vous avez envoyé plusieurs enregistrements. Le marqueur a été conçu avec le (noadd) modificateur (&=RootData.Items.ItemName(noadd)Supprimez le modificateur pour que le moteur insère de nouvelles lignes.


Quand utiliser ce modèle

  • Génération de factures à partir des lignes de commande CRM. Extraire les lignes de Dynamics, Salesforce ou HubSpot dans un tableau JSON Items ; les afficher avec un modèle de facture Excel conçu à cet effet.
  • Rapports mensuels d'inventaire et de ventes. Un déclencheur de récurrence, des lignes de liste Dataverse et ce flux vous permettent d'obtenir un fichier Excel impeccable en quelques minutes.
  • Liste des ressources humaines, récapitulatif de la paie, notes de frais. Partout où une mise en page Excel prédéfinie rencontre de nouvelles données de lignes.
  • Fichiers Excel que le destinataire ouvrira et modifiera. Excel - Remplir les résultats natifs .xlsx (pas de PDF), afin que les destinataires puissent trier, filtrer et ajuster les formules ultérieurement.

Que lire ensuite ?


FAQ

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.

Commencer