如何用Power Automate将Outlook中的Excel文件迁移至Smartsheet?
解决Power Automate将Excel附件迁移至Smartsheet的URI错误及完整流程
先解决URI错误问题
出现“Enter valid URI”错误,大概率是Smartsheet API的URI格式、参数或请求配置有误,按以下步骤排查修正:
- 确认URI格式合规:
- 上传附件到表格:
https://api.smartsheet.com/2.0/sheets/{sheetId}/attachments - 上传附件到指定行:
https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/{rowId}/attachments - 追加行数据到表格:
https://api.smartsheet.com/2.0/sheets/{sheetId}/rows
注意把{sheetId}和{rowId}替换为实际的ID,不要留占位符,也不要加多余空格、特殊字符。
- 上传附件到表格:
- 检查请求方法:上传附件或追加行必须用
POST方法,不能用GET。 - 授权头配置:请求头必须包含
Authorization: Bearer {你的Smartsheet API密钥},头名称和格式不能出错,密钥要确保有效且有对应权限。 - 变量引用正确:如果用变量存储Sheet ID,要确保表达式格式正确,比如
@{variables('SheetId')},不要有拼写错误。
推荐两种完整迁移方案(优先用官方连接器,避免手动HTTP错误)
方案1:将Excel内容追加到单个Smartsheet表格
- 触发与筛选:保留现有“新邮件到达时”触发,添加「筛选数组」操作,筛选附件扩展名为
.xlsx/.xls的文件。 - 读取Excel数据:对每个筛选后的附件,使用「Excel Online (Business)」的「列出表行」操作,指定文件为邮件附件,选择Excel内的目标表。
- 追加到Smartsheet:
- 优先用Smartsheet官方连接器的「添加行」操作,将读取到的Excel行数据映射到Smartsheet对应列即可,无需手动配置URI。
- 若必须用HTTP请求,URI用
https://api.smartsheet.com/2.0/sheets/{sheetId}/rows,请求体按Smartsheet API要求构造行数据,示例格式:{ "rows": [ { "cells": [ {"columnId": "列ID1", "value": "单元格值1"}, {"columnId": "列ID2", "value": "单元格值2"} ] } ] }
方案2:将Excel作为行附件上传到Smartsheet
- 触发与筛选:同方案1第一步。
- 创建目标行(可选):用Smartsheet连接器的「添加行」操作,为每个附件新建一行(可填充邮件主题、接收日期等基础信息)。
- 上传附件:
- 官方连接器方式:选择「添加附件到行」,指定目标Sheet和新建的行,文件选择邮件附件即可。
- 手动HTTP请求方式:URI用
https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/{rowId}/attachments,请求头添加Content-Type: multipart/form-data,请求体中引用附件的内容字节(Power Automate中用@{body('获取附件内容')})。
内容的提问来源于stack exchange,提问作者dhk02
相关产品推荐
相关产品推荐

