Есть ли способ очистки листа данных за один вызов?

Я вношу данные из другого приложения, но я не знаю, что нового и что обновлено, поэтому я очищаю лист (строка за строкой - это занимает много времени) и заново добавляю строки. Я хотел бы знать, есть ли способ очистить лист с помощью одной команды, чтобы я мог повторно добавить свои строки.

Имейте в виду, мой код на C#. Я не знаю, cURL или как его использовать.

1 ответ

Решение

Нет единой команды для удаления всех строк. Однако вы можете указать список строк для удаления. Вот пример кода.

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);

Заметки:

  • Чтобы избежать чтения всего листа, этот образец определяет идентификатор для основного столбца и читает только этот единственный столбец.

  • Если ваш лист большой и вы получаете ошибки тайм-аута при удалении, вам нужно будет разделить их на части. (Почему? Удаление строки может вызвать каскадные изменения из-за ссылок на ячейки, формул и т. Д.) Если у вас возникнут проблемы, пожалуйста, дайте мне знать, и я могу обновить образец.

Другие вопросы по тегам