C# 使用C在smartsheet中同时添加更新#
但我有一个错误- mscorlib.dll中发生类型为“System.ArgumentOutOfRangeException”的未处理异常 附加信息:索引超出范围。必须为非负数且小于集合的大小 下一行-C# 使用C在smartsheet中同时添加更新#,c#,smartsheet-api,C#,Smartsheet Api,但我有一个错误- mscorlib.dll中发生类型为“System.ArgumentOutOfRangeException”的未处理异常 附加信息:索引超出范围。必须为非负数且小于集合的大小 下一行- SmartsheetClient ss = new SmartsheetBuilder().SetAccessToken(accessToken).Build(); Sheet sheet = ss.SheetResources.GetSheet(sheetId
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 });
sheet = ss.SheetResources.GetSheet(sheetId, null, null, null, null, null, null, null);
因为“sheet.Rows.count”仍然是0
因此,我在下面的行中添加了-
Row row = new Row.UpdateRowBuilder(sheet.Rows[2].Id).SetCells(cell).Build();
ss.SheetResources.RowResources.UpdateRows(sheetId, new Row[] { row });
在下一行之上-
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 });
sheet = ss.SheetResources.GetSheet(sheetId, null, null, null, null, null, null, null);
然后错误就消失了,我的工作表也更新了
我想问一下,这是否是正确的方法,即必须再次调用“GetSheet”以加载更新的工作表,然后继续,或者有其他方法。是的,服务器上的工作表已更改,因此您需要另一个GET来拥有匹配的本地表示