В вашей ситуации я понимаю следующее.
- Есть много строк, которые удаляются.
- Строки не продолжаются.Таким образом, строки должны быть удалены строка за строкой, используя
deleteRow()
.
Если мое понимание верно, как насчет этой модификации?
Точки модификации:
- Использование API batchUpdate of Sheets.
- Используя API Sheets, можно удалить отдельные строки одним вызовом API.
- Создать список строк, которые будут удалены как тело запроса для API Sheets.
- Удалите строки с помощью batchUpdate Sheets API вместе с телом запроса.
Чтобы использовать Sheets API, включите Sheets API в Advanced Google Services и консоли API.О том, как включить их, пожалуйста, проверьте здесь .
Модифицированный скрипт:
var spreadsheetId = "#####"; // Please input spreadsheet ID.
var sheetId = "#####"; // Please input sheet ID.
var deleteRows = [];
for (var i = values.length - 1; i >= 0; i--) {
if (values[i] == "delete" || values[i] == "") {
deleteRows.push({
"deleteRange": {
"shiftDimension": "ROWS",
"range": {
"startRowIndex": i,
"endRowIndex": i + 1,
"sheetId": sheetId
}
}
});
}
}
Sheets.Spreadsheets.batchUpdate({"requests": deleteRows}, spreadsheetId);
Примечание:
- ВВ этом измененном сценарии предполагается, что извлеченные значения из электронной таблицы находятся в
values
. - . Перед тем, как запускать этот код, введите идентификатор таблицы и идентификатор листа, содержащие строки, которые вы хотите удалить.
Если это не было результатом, что вы хотите, извините.