2017-07-25 68 views
0
 SmartsheetClient ss = new SmartsheetBuilder().SetAccessToken(accessToken).Build(); 
     Sheet sheet = ss.SheetResources.GetSheet(sheetId, null, null, null, null, null, null, null); 
     //Add 
     Cell[] cellA = new Cell[] { new Cell.AddCellBuilder(sheet.Columns[0].Id, "test task1").Build() }; 
     Row rowA = new Row.AddRowBuilder(null,true, null, null, null).SetCells(cellA).Build(); 
     ss.SheetResources.RowResources.AddRows(sheetId, new Row[] { rowA }); 
     Cell[] cellB = new Cell[] { new Cell.AddCellBuilder(sheet.Columns[0].Id, "test task2").Build() }; 
     Row rowB = new Row.AddRowBuilder(null, true, null, null, null).SetCells(cellB).Build(); 
     ss.SheetResources.RowResources.AddRows(sheetId, new Row[] { rowB }); 
     Cell[] cellC = new Cell[] { new Cell.AddCellBuilder(sheet.Columns[0].Id, "test task3").Build() }; 
     Row rowC = new Row.AddRowBuilder(null, true, null, null, null).SetCells(cellC).Build(); 
     ss.SheetResources.RowResources.AddRows(sheetId, new Row[] { rowC }); 

     //Update 
     Cell[] cell = new Cell[] { new Cell.UpdateCellBuilder(sheet.Columns[0].Id, "test task update").Build() }; 
      Row row = new Row.UpdateRowBuilder(sheet.Rows[2].Id).SetCells(cell).Build(); 
      ss.SheetResources.RowResources.UpdateRows(sheetId, new Row[] { row }); 

添加更新的smartsheet,但我得到的錯誤 - 類型「System.ArgumentOutOfRangeException」未處理的異常出現在mscorlib.dll同時使用C#

其他信息:索引超出範圍。必須是非負數且小於集合的大小。上

以下啉

  Row row = new Row.UpdateRowBuilder(sheet.Rows[2].Id).SetCells(cell).Build(); 
      ss.SheetResources.RowResources.UpdateRows(sheetId, new Row[] { row }); 

因爲 「sheet.Rows.count」 仍爲0

因此,我加入下面線 -

  sheet = ss.SheetResources.GetSheet(sheetId, null, null, null, null, null, null, null); 

以下啉

以上
  Cell[] cell = new Cell[] { new Cell.UpdateCellBuilder(sheet.Columns[0].Id, "test task update").Build() }; 

and the the錯誤消失,我的工作表得到更新。

我想問一下,如果這是正確的方法,你必須再次調用「GetSheet」來加載更新的表單,然後繼續或有其他方法。

回答

0

是的,服務器上的表已經改變了,所以你需要另一個GET來獲得一個匹配的本地表示。