.NET VB环境使用Smartsheet SDK如何将上传Sheet设置到指定工作区
Smartsheet Sheet归属工作区设置解决方案(.NET VB环境)
- 核心解决逻辑:Smartsheet C# SDK 2.126.0版本支持两种实现方式,既可以将已导入填充完成的Sheet移动到指定工作区,也可以在导入文件时直接指定归属工作区。
方案1:导入填充数据后移动到指定工作区
前提条件
提前获取目标工作区的ID:可直接在Smartsheet网页端打开目标工作区,从浏览器URL中提取ID,也可调用smartsheet.WorkspaceResources.ListWorkspaces()方法枚举所有工作区获取对应ID。
代码示例(接现有逻辑)
' 原有导入、数据填充逻辑 Dim smartsheet As SmartsheetClient = New SmartsheetBuilder().Build() Dim sheet As Sheet = smartsheet.SheetResources.ImportXlsSheet(XLSFILENAME, Nothing, 0, Nothing) ' 此处省略你已有的行数据构造、上传逻辑 ' ========== 新增移动到工作区的逻辑 ========== ' 替换为你的目标工作区ID Dim targetWorkspaceId As Long = 1234567890123456 ' 构造仅包含更新字段的Sheet对象即可,无需赋值其他属性 Dim updateSheetReq As New Sheet With { .Id = sheet.Id, .WorkspaceId = targetWorkspaceId } ' 执行更新,完成Sheet归属工作区修改 smartsheet.SheetResources.UpdateSheet(updateSheetReq)
注意事项
你使用的API Token对应的账号,必须同时拥有当前Sheet的管理权限、目标工作区的编辑权限,否则会返回权限不足报错。
方案2:导入时直接指定归属工作区(可选优化)
如果不需要在默认位置先导入Sheet,可以直接在调用导入方法时指定目标工作区,省去后续移动步骤,代码如下:
Dim smartsheet As SmartsheetClient = New SmartsheetBuilder().Build() ' 替换为你的目标工作区ID Dim targetWorkspaceId As Long = 1234567890123456 ' 导入时直接指定归属工作区 Dim sheet As Sheet = smartsheet.SheetResources.ImportXlsSheet( XLSFILENAME, Nothing, 0, Nothing, targetWorkspaceId, DestinationType.WORKSPACE ) ' 后续直接执行行数据填充逻辑即可
内容的提问来源于stack exchange,提问作者Enrico Oricco
相关产品推荐
相关产品推荐

