Vb.net Smartsheet API附件
我对smartsheet API中的附件有问题 它一直告诉我,这一行不支持文件路径格式Vb.net Smartsheet API附件,vb.net,smartsheet-api,Vb.net,Smartsheet Api,我对smartsheet API中的附件有问题 它一直告诉我,这一行不支持文件路径格式 smartSheet.SheetResources.RowResources.AttachmentResources.AttachFile(id, 1, "N:\TEST\M-TST-12346\M-TST-12346-TV.pdf", "application/pdf") 任何帮助都会很棒 Public Sub GetSheetsInWorkspace(workspaceID As Int64)
smartSheet.SheetResources.RowResources.AttachmentResources.AttachFile(id, 1, "N:\TEST\M-TST-12346\M-TST-12346-TV.pdf", "application/pdf")
任何帮助都会很棒
Public Sub GetSheetsInWorkspace(workspaceID As Int64)
Dim workspace As Workspace
workspace = smartSheet.WorkspaceResources.GetWorkspace(workspaceID, Nothing, Nothing)
Dim folder As Folder
folder = smartSheet.FolderResources.GetFolder(5398922303694724, Nothing)
Dim sheets As List(Of Sheet)
sheets = folder.Sheets
For Each sheet In sheets
If sheet.Name = "ALAN S. INPUT" Then
Dim id
id = sheet.Id
smartSheet.SheetResources.RowResources.AttachmentResources.AttachFile(id, 1, "N:\TEST\M-TST-12346\M-TST-12346-TV.pdf", "application/pdf")
End If
Next
End Sub
也许将您正在做的与SDK中提供的进行比较会有所帮助?具体地说,我链接到的文件中的AttachFileAndUrlToRow方法包含以下行,用于向行添加附件:
Attachment attachment = smartsheet.SheetResources.RowResources.AttachmentResources.AttachFile(sheetId, rowId, path, null);
…其中路径的值定义如下:
string path=“../../../IntegrationTestSDK/TestFile.txt”代码>
将该测试代码与您发布的代码进行比较,我注意到一些差异:
- 您的代码在文件路径中使用(单个)反斜杠(\),而SDK测试代码使用正斜杠(/)
- 您指定的路径使用驱动器映射(N:\),而SDK测试代码指定的是相对路径
- 您正在为最后一个参数(
application/pdf
)传递一个值,而SDK测试代码为最后一个参数指定了null
作为故障排除的第一步,可能需要对文件路径中的每个反斜杠进行转义,例如,为每个事件添加一个额外的反斜杠:
smartSheet.SheetResources.RowResources.AttachmentResources.AttachFile(id, 1, "N:\\TEST\\M-TST-12346\\M-TST-12346-TV.pdf", "application/pdf")
如果这不能解决您的问题,那么可以尝试将每个反斜杠更改为正斜杠(与SDK测试代码的功能一致):
此外(尽管可能与您的问题无关)--看起来您正在为rowId传递1
,这是不正确的--rowId应该是一个GUID(例如,类似以下内容:4583173393803140
).将您所做的与SDK中提供的进行比较可能会有所帮助?具体地说,我链接到的文件中的AttachFileAndUrlToRow方法包含以下行,用于向行添加附件:
Attachment attachment = smartsheet.SheetResources.RowResources.AttachmentResources.AttachFile(sheetId, rowId, path, null);
…其中路径的值定义如下:
string path=“../../../IntegrationTestSDK/TestFile.txt”代码>
将该测试代码与您发布的代码进行比较,我注意到一些差异:
- 您的代码在文件路径中使用(单个)反斜杠(\),而SDK测试代码使用正斜杠(/)
- 您指定的路径使用驱动器映射(N:\),而SDK测试代码指定的是相对路径
- 您正在为最后一个参数(
application/pdf
)传递一个值,而SDK测试代码为最后一个参数指定了null
作为故障排除的第一步,可能需要对文件路径中的每个反斜杠进行转义,例如,为每个事件添加一个额外的反斜杠:
smartSheet.SheetResources.RowResources.AttachmentResources.AttachFile(id, 1, "N:\\TEST\\M-TST-12346\\M-TST-12346-TV.pdf", "application/pdf")
如果这不能解决您的问题,那么可以尝试将每个反斜杠更改为正斜杠(与SDK测试代码的功能一致):
此外(尽管可能与您的问题无关)--看起来您正在为rowId传递一个1
值,这是不正确的--rowId应该是一个GUID(例如,类似这样的东西:4583173393803140
)。附加文件的第二个参数是rowId,而不是行号。我相信您的“未找到”错误是由于未找到该行
要获取第一行的id,需要调用SheetResources.GetSheet()来获取行对象的集合
顺便说一句,反斜杠不应该在VB字符串中转义
尝试这样的代码
mySheet = ss.SheetResources.GetSheet(sheetId, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing)
Dim rowId As Long
rowId = mySheet.Rows.First.Id
ss.SheetResources.RowResources.AttachmentResources.AttachFile(sheetId, rowId, "C:\tmp\test.pdf", "application/pdf")
AttachFile的第二个参数是rowId,而不是row number。我相信您的“未找到”错误是由于未找到该行
要获取第一行的id,需要调用SheetResources.GetSheet()来获取行对象的集合
顺便说一句,反斜杠不应该在VB字符串中转义
尝试这样的代码
mySheet = ss.SheetResources.GetSheet(sheetId, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing)
Dim rowId As Long
rowId = mySheet.Rows.First.Id
ss.SheetResources.RowResources.AttachmentResources.AttachFile(sheetId, rowId, "C:\tmp\test.pdf", "application/pdf")
我开始认为这是罗伊德。如果我将路径更改为正确的路径,它会喜欢它,但现在会给我一个错误“未找到”。不是那条路。。。只是“找不到”。我相信这和罗维德有关。我可以抓住它。。。但是它告诉我这个表有0行,我知道它有。我还要挖一些。谢谢你的意见!我现在就去拿。我必须打开SheetResources才能获取Row.ID。谢谢你!!我开始认为这是罗伊德。如果我将路径更改为正确的路径,它会喜欢它,但现在会给我一个错误“未找到”。不是那条路。。。只是“找不到”。我相信这和罗维德有关。我可以抓住它。。。但是它告诉我这个表有0行,我知道它有。我还要挖一些。谢谢你的意见!我现在就去拿。我必须打开SheetResources才能获取Row.ID。谢谢你!!这正是我想出来的。我以为我可以从sheets中的工作表中获取rowId,但这不适用于和row值。相反,我不得不从保存行信息的SheetResources中对工作表进行分级。谢谢你的帮助!!!这正是我想出来的。我以为我可以从sheets中的工作表中获取rowId,但这不适用于和row值。相反,我不得不从保存行信息的SheetResources中对工作表进行分级。谢谢你的帮助!!!