是否有一种方法可以在一次通话中清除一张数据

时间:2017-03-17 15:32:29

标签: c# smartsheet-c#-sdk-v2

我从另一个应用程序引入数据,但我不知道什么是新的和更新的,所以我正在清理工作表(逐行 - 这是时间密集的)并重新添加行。我想知道是否有办法用一个命令清除工作表,以便我可以重新添加我的行。

请记住,我的代码是在C#中。我不知道cURL或如何使用它。

1 个答案:

答案 0 :(得分:2)

没有一个命令可以删除所有行。但是,您可以指定要删除的行列表。 这是一些示例代码。

var ss = new SmartsheetBuilder().SetAccessToken(accessToken).Build();

var allColumns = ss.SheetResources.ColumnResources.ListColumns(sheetId, null, null);
long primaryColumnId = (long) allColumns.Data.First(c => c.Primary == true).Id;

var columnsToRead = new long[] { primaryColumnId };
Sheet sheet = ss.SheetResources.GetSheet(sheetId, null, null, null, null, columnsToRead, null, null);

var rowsToDelete = sheet.Rows.Select(r => (long) r.Id);

ss.SheetResources.RowResources.DeleteRows(sheetId, rowsToDelete, true);

注意:

  • 为避免读取整个工作表,此示例确定主列的ID,并仅读取该列。

  • 如果您的工作表很大,并且您在删除时遇到超时错误,则需要对删除进行分块。 (为什么?由于单元格链接,公式等原因,删除行可能会触发级联更改)如果遇到问题,请告知我,我可以更新示例。