我在智能表API中遇到了attachemnt问题。
它一直告诉我此行不支持文件路径格式
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
答案 0 :(得分:1)
或许将您正在做的事情与作为SDK一部分提供的integration test code进行比较可能会有所帮助?具体来说,我链接到的文件中的 AttachFileAndUrlToRow 方法包含此行,用于向行添加附件:
Attachment attachment = smartsheet.SheetResources.RowResources.AttachmentResources.AttachFile(sheetId, rowId, path, null);
...其中路径的值定义如下:
string path = "../../../IntegrationTestSDK/TestFile.txt";
将测试代码与您发布的代码进行比较,我注意到一些差异:
application/pdf
)的值,而SDK测试代码为最后一个参数指定了null
。也许作为故障排除的第一步,转义文件路径中的每个反斜杠 - 即,为每次出现添加额外的反斜杠:
smartSheet.SheetResources.RowResources.AttachmentResources.AttachFile(id, 1, "N:\\TEST\\M-TST-12346\\M-TST-12346-TV.pdf", "application/pdf")
如果这不能解决您的问题,那么可能尝试将每个反斜杠更改为正斜杠(与SDK测试代码的功能一致):
smartSheet.SheetResources.RowResources.AttachmentResources.AttachFile(id, 1, "N:/TEST/M-TST-12346/M-TST-12346-TV.pdf", "application/pdf")
此外(虽然可能与您的问题无关) - 看起来您已经为 rowId 传递1
的值,这是不正确的 - < strong> rowId 应该是GUID(例如,更像这样的内容:4583173393803140
)。
答案 1 :(得分:1)
AttachFile的第二个参数是rowId,而不是行号。我相信你的“未找到”错误是由于没有找到Row 要获取第一行的id,您需要调用SheetResources.GetSheet()来获取Row对象的集合。
BTW,反斜杠应该不在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")