有没有一种方法可以在一次调用中清除 sheet 数据
Is there a method for clearing a sheet of data in one call
我正在从另一个应用程序中引入数据,但我不知道什么是新的和什么是更新的,所以我正在清除 sheet(逐行 - 这是时间密集型的)并重新- 添加行。我想知道是否有一种方法可以用一个命令清除 sheet,以便我可以重新添加我的行。
请记住,我的代码是用 C# 编写的。我不知道 cURL 或如何使用它。
没有删除所有行的单一命令。但是,您可以指定要删除的行列表。
这是一些示例代码。
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);
备注:
为避免读取整个 sheet,此示例确定主列的 ID 并且仅读取该列。
如果您的 sheet 很大并且您在删除时遇到超时错误,您将需要对删除进行分块。 (为什么?删除行会触发单元格链接、公式等的级联更改)如果遇到问题,请告诉我,我可以更新示例。
我正在从另一个应用程序中引入数据,但我不知道什么是新的和什么是更新的,所以我正在清除 sheet(逐行 - 这是时间密集型的)并重新- 添加行。我想知道是否有一种方法可以用一个命令清除 sheet,以便我可以重新添加我的行。
请记住,我的代码是用 C# 编写的。我不知道 cURL 或如何使用它。
没有删除所有行的单一命令。但是,您可以指定要删除的行列表。 这是一些示例代码。
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);
备注:
为避免读取整个 sheet,此示例确定主列的 ID 并且仅读取该列。
如果您的 sheet 很大并且您在删除时遇到超时错误,您将需要对删除进行分块。 (为什么?删除行会触发单元格链接、公式等的级联更改)如果遇到问题,请告诉我,我可以更新示例。