Я пишу скрипт для очистки электронных таблиц. Эти листы создаются автоматически и содержат много несущественной информации. Мне нужно отсканировать заголовок, удалить эту строку, а затем удалять каждую дополнительную строку до тех пор, пока не придет к строке, которая полностью пуста, непосредственно перед следующей группой заголовков:
Я могу использовать приведенный ниже код для сканирования целевого текста и удаления строки.
Я могу регистрировать каждую строку, которую я удалил: Logger.log («удаленные строки:» + toDelete);
Но у меня проблемы с написанием остальных
function deleteRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var toDelete = [];
var deleteExtra = [];
var re = new RegExp('(Member Service Associate|Contract Work)','gi');
for (var row = 0; row < values.length; row++) {
for(var column = 0;column<values[row].length;column++){
if (re.exec(values[row][column])){
toDelete.push(row); } } }
for(var deleteRow = toDelete.length-1; deleteRow >= 0;deleteRow--){
sheet.deleteRow(toDelete[deleteRow]+1);
}
Logger.log("deleted rows: " + toDelete );
SpreadsheetApp.flush();
};
Выход логгера:
[19-01-02 10: 16: 13: 732 PST] удаленные строки: 33,45,51,54,86,89,101,103,125,127,145,148,171,175,200,208,219,222,262,269,275,280,310,313,324,332,347,352,363,366,372,374,385,388