是否有方法可以修改Smartsheet报表中的SourceSheets对象?
Smartsheet 报表自动追加源工作表实现方案
Smartsheet 公开API原生支持修改报表的sourceSheets配置,无需使用未公开接口即可完成全流程自动化。
实现逻辑
- 调用报表详情接口获取当前已关联的源工作表完整数组
- 将新生成的工作表ID按指定格式追加到数组中
- 调用报表更新接口提交完整的
sourceSheets数组完成配置修改
PowerShell 实现示例
# 配置参数替换为实际值 $smartsheetApiToken = "你的Smartsheet API访问令牌" $targetReportId = "需要修改的报表ID" $newCreatedSheetId = 1234567890123456 # 替换为新生成的工作表ID,为数值类型 # 构建请求头 $requestHeaders = @{ "Authorization" = "Bearer $smartsheetApiToken" "Content-Type" = "application/json" } # 1. 获取当前报表的源工作表配置 $reportDetail = Invoke-RestMethod -Uri "https://api.smartsheet.com/2.0/reports/$targetReportId" -Headers $requestHeaders -Method Get # 2. 追加新工作表到源工作表数组 $newSourceEntry = [PSCustomObject]@{ id = $newCreatedSheetId } $reportDetail.sourceSheets += $newSourceEntry # 3. 提交修改后的配置 $updateBody = @{ sourceSheets = $reportDetail.sourceSheets } | ConvertTo-Json Invoke-RestMethod -Uri "https://api.smartsheet.com/2.0/reports/$targetReportId" -Headers $requestHeaders -Method Put -Body $updateBody
注意事项
- 使用的API令牌需要同时拥有目标报表的编辑权限、新增工作表的查看权限,否则会返回403权限错误
- 更新请求必须提交完整的
sourceSheets数组,仅传入新增条目会覆盖原有已关联的所有工作表 - 若报表和新增工作表属于不同工作区,需要确保API令牌对两个工作区都有对应访问权限
内容的提问来源于stack exchange,提问作者Ryan McBee
相关产品推荐
相关产品推荐

