如何在Power Automate中分离MS Forms提交的多文件SharePoint链接
解决Power Automate提取MS Forms所有附件链接到Excel的问题
你当前用split(outputs('Get_response_details')?['body/r76baf98bb93c4c30aaeece42612b3df3'], '"')[7]只能提取单个链接,是因为这个表达式只取了拆分后的固定位置元素,没法批量处理多个文件。Format Data by Example功能在处理多元素数组时确实不太灵活,换个更可靠的方法,不用写复杂代码:
步骤1:修正附件数据格式并解析
你的表单返回的附件数据是类似JSON的结构但被拆分成了数组,先把它合并成完整的JSON字符串:
添加一个Compose操作,输入表达式:
join(outputs('Get_response_details')?['body/r76baf98bb93c4c30aaeece42612b3df3'], '')这个操作会把拆分的数组元素合并成一个完整的JSON文本。
再添加一个Parse JSON操作,将Compose的输出作为输入,点击Generate from sample,把你提供的脱敏后完整数据(合并后的版本)粘贴进去,自动生成解析规则。
步骤2:提取所有附件链接
添加一个Select操作:
- 从Parse JSON的输出中选择
value(也就是所有附件的数组)作为输入。 - 在映射里,键随便填(比如
Link),值选择每个附件的link字段(Parse JSON解析后会自动出现这个选项,直接点选就行)。
步骤3:合并链接成字符串并写入Excel
添加一个Compose操作,输入表达式把Select输出的链接数组转成逗号分隔的字符串:
join(body('Select'), ', ')
最后在Add row to a table操作中,把这个Compose的输出填入对应Excel列即可。
这样不管上传多少个附件,所有链接都会被提取并合并成一个字符串写入Excel。
内容的提问来源于stack exchange,提问作者Lina
相关产品推荐
相关产品推荐

