跳到主要内容

在 Power Automate 中从 JSON 填充 Excel 模板:使用 Aspose Smart Markers 的 4 步 Dropbox 工作流程

· 阅读需 18 分钟
SEO and Content Writer

提供一个使用 Excel 模板的 Aspose 智能标记 (单元格写法如下) &=RootData.Items.ItemName将匹配的 JSON 有效负载粘贴到 Power Automate 流中,然后将其保存到 Dropbox,填充后的工作簿将返回到 Dropbox,并且总计已计算完毕。本指南将逐步介绍具体步骤。 精确的四步流程 屏幕截图所示:手动触发,Dropbox 使用路径获取文件内容PDF4me Excel - 填充以及 Dropbox 创建文件每个字段值都来自实际运行;输入模板、JSON 有效负载和输出工作簿最终都会链接在一起。

流程概览
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.
简短版

手动触发即可启动流程。Dropbox 使用路径获取文件内容 阅读 aspose 模板.xlsx (工作簿包含一个真正的 Excel 文件) 桌子 命名 简易发票 具有类似细胞 &=RootData.Items.ItemName 第 2 行)。 PDF4me Excel - 填充 将 JSON 有效负载(3 条记录:笔记本电脑、鼠标、键盘)合并到工作表索引中 1 公式已重新计算。Dropbox 创建文件Excel_populate.xlsx (发票小计) 1,635.00 美元销售税 98.10美元, 全部的 1,585.00 美元)回到 /输出

决定输出结果是否正确的两件事

首先, JSON 数据顶级键必须与数据源名称匹配 用于细胞标记。例如标记物 &=RootData.Items.ItemName 需要将 JSON 中的记录封装起来 RootData.Items[]字段名称区分大小写。其次, 工作表索引 字段从 1 开始计数,以逗号分隔。模板包含三张工作表(发票表格1Sheet2)。 经过 1 仅填充本指南中所示的富媒体发票表格。

你正在构建的

这是一个包含四个步骤的 Power Automate 流程,可将预先设计的 Excel 模板和 JSON 有效负载转换为包含实时公式的完整工作簿。同样的模式也适用于发票、库存报告、工资汇总、销售总结以及任何其他结构保持不变但每次运行行都会变化的 Excel 文件。

包含四个操作的 Power Automate 流程:手动触发流程、使用路径从 Dropbox 获取文件内容、PDF4me Excel - 填充数据、Dropbox 创建文件。每个操作都会显示运行时间(0 秒、1 秒、0.7 秒、1 秒)和一个绿色对勾。
整个流程从头到尾运行不到 3 秒。

你需要什么

  • 动力自动化 在云端设计器中打开一个流程的帐户。
  • PDF4me API密钥获取您的 API 密钥首次放置该动作时,请添加 PDF4me Connect 连接。
  • Dropbox 准备好两个文件夹:一个用于模板,一个用于输出。(任何存储方式都可以:SharePoint 的“获取文件内容”、OneDrive 的“获取文件内容”和 Dataverse 的“下载文件”映射方式都相同。)
  • 使用 Aspose Smart Markers 的 Excel 模板。 下载 模板.xlsx (也称为 aspose 模板.xlsx 请按照截图中的步骤进行操作。
  • JSON 示例数据。 下载 sheet1-data.json (嵌套的) RootData.Items 运行中使用的有效载荷)。

输入模板概览

在构建流程之前,最好先查看一下智能标记在 Excel 文件中的实际外观。打开 发票 一张纸 template.xlsx第 1 行是标题行。第 2 行包含标记(每列一个)。第 3 行到第 6 行是预先格式化的空行。其下方是总计块。 SimpleInvoice Excel表格聚合。

Excel 发票表格。表头行(1)包含项目名称、描述、数量、单价、折扣和价格。第 2 行包含智能标记单元格:&=RootData.Items.ItemName、&=RootData.Items.Description、&=RootData.Items.Qty、&=RootData.Items.UnitPrice、&=RootData.Items.Discount 和 &=RootData.Items.Price。数据块下方是发票小计:$0.00,税率 6.00%,销售税 $0.00,已收定金 $50.00,总计 -$50.00。
人口统计之前的模板。第 2 行的标记;小计/税/总计公式引用了 简易发票 Excel表格。

这六项指标分别是:

细胞标记
B2&=RootData.Items.ItemName
C2&=RootData.Items.Description
D2&=RootData.Items.Qty
E2&=RootData.Items.UnitPrice
F2&=RootData.Items.Discount
G2&=RootData.Items.Price

总计块使用 结构化参考文献 而不是普通的 A1 地址:

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

当 Excel 的“填充”功能将标记行从 1 条记录扩展到 3 条记录时, SimpleInvoice 表格范围会自动扩展,并且 SUM(SimpleInvoice[Price]) 它会不断地对右列求和。这就是为什么这种模式比手动编写逐行公式更有效的原因。


构建流程

操作 1:手动触发流程

测试时,手动触发速度最快。生产时,请将其替换为 当创建文件时(Dropbox)创建或修改项目时(SharePoint)复发或者任何能提供全新 JSON 有效负载的事件。

操作 2:Dropbox - 使用路径获取文件内容

文件路径 模板的完整 Dropbox 路径,包括文件名:

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

在下面 高级参数推断内容类型 设置为 是的 (默认值)。

Dropbox 使用路径操作获取文件内容。文件路径设置为 /pdf4metest/excel/populate excel/aspose template.xlsx。高级参数“推断内容类型”设置为“是”。
Dropbox 使用运行中使用的确切文件路径获取文件内容。

操作 3:PDF4me - Excel - 填充

这里是合并发生的地方。搜索 PDF4me 在操作选择器中,然后选择 Excel - 填充请配置以下字段:

场地运行中使用的值
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)

完整的 JSON 数据有效负载(从此处复制粘贴) 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 - 使用从上一步 Dropbox 步骤映射的文件内容填充 Excel 文件。JSON 数据文本框包含嵌套的 RootData.Items 数组,其中包含笔记本电脑、鼠标和键盘记录。文件名:Populate.xlsx。工作表索引:1。
Excel - 使用精确的 JSON 数据块填充,并将工作表索引设置为 1。

扩张 高级参数 对于四个可选控件,默认值通常是正确的,但屏幕截图显示了每个值在用户界面中的实际显示效果:

Excel 高级参数 - 填充。严格 JSON 字符串:是。区域和语言设置:en-US。计算公式:是。引用前缀样式:是。
运行中使用的四个高级设置。
高级领域价值为什么这很重要
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.

操作 4:Dropbox - 创建文件

最后一步是将填写完毕的工作簿上传回 Dropbox:

场地价值
文件夹路径/pdf4metest/excel/populate excel/output
文件名Excel_populate.xlsx
文件内容输出文件内容 (来自 Excel 的动态内容 - 填充)
Dropbox 创建文件操作。文件夹路径 /pdf4metest/excel/populate excel/output。文件名 Excel_populate.xlsx。文件内容映射自 Excel - Populate。
Dropbox 创建文件,并将已填充的工作簿放在“文件内容”槽中。

这就是整个流程。保存并点击 测试


结果

当你打开 Excel_populate.xlsx/output 文件夹中,“发票”工作表现在包含第 2 行到第 4 行的三条记录,“总计”块已根据以下内容计算出实时值: SimpleInvoice 表格聚合。

已填写的发票单。第2行:笔记本电脑/戴尔Inspiron 15/2台/750/$50.00/$1,450.00。第3行:鼠标/无线鼠标/3个/25/$0.00/$75.00。第4行:键盘/机械键盘/1个/120/$10.00/$110.00。发票小计$1,635.00,税率6.00%,销售税$98.10,已收定金$50.00,总计$1,585.00。
流程运行后,同一工作簿中已填充三条记录;小计、销售税和总计均已实时计算。

公式重新计算正确性的精确数值证明:

细胞公式结果
G7=SUM(SimpleInvoice[Price])1,635.00 美元 (1450 + 75 + 110)
G9=IFERROR(G7*G8,"") G8 = 6.00%98.10美元
G10静止的 5050.00 美元(已收到定金)
G11=SUM(G2:G4)-G101,585.00 美元 (1635 + 98.10 - 50 ≈ 四舍五入显示)

下载本次运行生成的实际输出工作簿: output-excel-populate.xlsx


故障排除

某一列显示为空。 您的 JSON 属性名称与标记字段名称不匹配。标记区分大小写。 &=RootData.Items.ItemName 不会接听。 itemName 来自 JSON。

表格数据填错了。 查看 工作表索引该值从 1 开始(而非从 0 开始)。通过 1 第一张纸, 2 第二个等。留空以填充每个工作表。

总计显示 $0.00 跑步之后。 计算公式 设置为 切换到 是的

看起来像数字的字符串被转换成了数字(反之亦然)。 切换 严格的 JSON 字符串是的 将带引号的 JSON 原语保留为文本。 胁迫他们。

您所在地区的小数分隔符或日期格式似乎不正确。 改变 文化与语言环境en-USfr-FRde-DEja-JP等等都是有效的。

数据已成功导入,但即使发送了多条记录,也只会填充第一行。 该标记由以下人员创建: (noadd) 修饰符(&=RootData.Items.ItemName(noadd)移除修饰符,以便引擎插入新行。


何时使用这种模式

  • 根据 CRM 系统中的行项目生成发票。 从 Dynamics、Salesforce 或 HubSpot 中提取数据到 JSON Items 数组中;使用设计的 Excel 发票模板进行渲染。
  • 月度库存和销售报告。 循环触发器加上 Dataverse 列表行,再加上此流程,即可在几分钟内生成精美的 Excel 交付物。
  • 人事名册、工资汇总表、费用报告。 任何需要将预先设计好的 Excel 布局与新生成的行数据进行交互的地方。
  • 收件人将打开并编辑的 Excel 文件。 Excel - 填充返回原生 .xlsx (不是 PDF),以便接收者可以对公式进行排序、筛选和调整。

接下来读什么?


常问问题

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.

开始使用