我从另一个应用程序引入数据,但我不知道什么是新的和更新的,所以我正在清理工作表(逐行 - 这是时间密集的)并重新添加行。我想知道是否有办法用一个命令清除工作表,以便我可以重新添加我的行。
请记住,我的代码是在C#中。我不知道cURL或如何使用它。
答案 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,并仅读取该列。
如果您的工作表很大,并且您在删除时遇到超时错误,则需要对删除进行分块。 (为什么?由于单元格链接,公式等原因,删除行可能会触发级联更改)如果遇到问题,请告知我,我可以更新示例。