如何在Logic App中获取Microsoft Forms上传的文件并解析内容
可行方案说明
不要使用返回结构中的link字段获取文件,该地址是SharePoint/OneDrive的文件在线预览网页链接,不是文件直链,直接请求只会返回HTML页面内容,无法拿到Excel二进制文件。
你拿到的响应数据里已经包含了定位上传文件的核心参数:driveId(文件所在驱动器ID)和id(文件本身的唯一ID),直接通过这两个参数即可准确获取到上传的Excel文件,具体操作流程如下:
Logic App 配置步骤
- 触发动作选择Microsoft Forms的当收到新响应时,绑定你创建的支持附件上传的表单。
- 触发后添加获取响应详情动作,填入对应表单ID,响应ID选择触发动作返回的动态值
响应ID,该动作会自动解析表单提交的所有字段,包括附件的结构化JSON数据。 - 针对解析出的附件数组(注意:即使表单限制仅允许上传1个附件,附件字段返回值仍然是数组格式),添加OneDrive for Business分类下的获取文件内容动作:
- 驱动器ID参数填入附件对象里的
driveId字段值 - 文件ID参数填入附件对象里的
id字段值
注意:不要使用SharePoint连接器的"按URL获取文件"动作传入link字段值,该链接是预览页路由,不是文件真实访问地址,会触发404错误或返回非文件内容
- 驱动器ID参数填入附件对象里的
- 拿到文件内容后,直接添加Excel Online (Business)连接器的对应解析动作即可,比如列出工作表内行、获取表等,文件输入选择上一步返回的
文件内容动态值,无需额外将文件存到中间存储位置,即可直接解析Excel内的结构化数据。
常见问题排查
- 如果执行后拿到的文件内容是乱码/HTML代码,检查是否误用了
link字段取文件,切换为driveId+id的组合取数即可修复。 - 如果提示无文件访问权限,为Logic App启用的系统托管标识授予对应OneDrive站点的文件读取权限即可,无需额外配置公网匿名访问链接。
- 如果取附件字段时提示参数为空,确认是否先执行了"获取响应详情"动作,触发动作本身不会返回完整的附件结构化数据。
内容的提问来源于stack exchange,提问作者Aaron Palazon
相关产品推荐
相关产品推荐

