- Вы хотите эффективно удалить строки с
DEL
в столбце "J".
Как насчет использования Sheets API?Когда используется Sheets API, несколько строк могут быть удалены одним вызовом API.Благодаря этому стоимость процесса будет уменьшена.Я думаю, что есть несколько обходных путей для вашей ситуации.Поэтому, пожалуйста, подумайте об этом, как об одном из них.
Когда вы используете Sheets API, пожалуйста, включите Sheets API в Advanced Google Services и консоли API.О том, как включить Sheets API, можно узнать по здесь .
Модифицированный скрипт:
function deleteRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('DEL_test');
var rows = sheet.getDataRange();
var values = rows.getValues();
var spreadsheetId = ss.getId();
var sheetId = sheet.getSheetId();
var reqs = values.reduceRight(function(ar, e, i) {
if (e[9] == 'DEL') {
ar.push({"deleteDimension":{"range":{
"sheetId": sheetId,
"dimension": "ROWS",
"startIndex": values.length - i - 1,
"endIndex": values.length - i,
}}});
}
return ar;
}, []);
Sheets.Spreadsheets.batchUpdate({"requests": reqs}, spreadsheetId);
Browser.msgBox('COMPLETE');
}
Ссылки:
Если я неправильно понял ваш вопрос, пожалуйста, сообщите мне.Я хотел бы изменить его.
Редактировать:
Если вы не хотите использовать Sheets API и хотите использовать clearContent()
, как насчет этого примера сценария?Этот пример сценария выглядит следующим образом.
- Извлечение всех значений.
- Извлечение только тех строк, которые не имеют "DEL" в столбце "J".
- Введите значения.
Пример сценария:
function deleteRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('DEL_test');
var rows = sheet.getDataRange();
var values = rows.getValues();
sheet.clearContents();
var val = values.filter(function(e) {return e[9] != 'DEL'});
sheet.getRange(1, 1, val.length, val[0].length).setValues(val);
Browser.msgBox('COMPLETE');
}
Примечание:
- Я не уверен в вашей фактической электронной таблице.Так что, если это не тот результат, который вы хотите, можете ли вы предоставить образец таблицы?По этому я хотел бы изменить скрипт.