2017-02-16 62 views
0

我遇到了smartsheet API中attachemnt的問題。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) 
     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 

回答

1

AttachFile的第二個參數是rowId,而不是行號。我相信你的'找不到'錯誤是由於行未被找到 要獲得第一行的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") 
+0

這正是我想到的。我以爲我可以從工作表中獲取rowId,但是這並沒有保留和行值。 我反而不得不從SheetResources中對工作表進行修改,該工作負載了行信息。 感謝您的幫助! –

1

也許將您正在做的和integration test code作爲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

也許在排除故障的第一步,逃生每個文件path--即反斜槓,添加額外的反斜線每次出現:

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") 

另外(雖然有可能無關您的問題) - - 看起來你正在傳遞1的值爲rowId,這是不正確的 - rowId應該是一個GUID(例如,更像是這樣的:4583173393803140)。

+0

即時通訊開始認爲它的ROWID。如果我將路徑更改爲正確的路徑,它喜歡它,但現在給我一個錯誤「未找到」。不是路徑...只是「未找到」。我相信這與rowID有關。 我可以抓住...但它告訴我該工作表有0行,我知道它。去挖更多。感謝您的輸入!我會稍後更新 –

+0

現在明白了。我必須打開SheetResources才能獲得Row.ID。 謝謝你! –