apps-script-utils (Русский) 2.1.1 Help

deleteRowsByConditional

function deleteRowsByConditional( target: GoogleAppsScript.Spreadsheet.Sheet | GoogleAppsScript.Spreadsheet.Range, predicate: RowPredicate, options: RowConditionalOptions | null | undefined = {} ): number;

Каждая строка оценивается по листу в том виде, в каком он был прочитан, а удаление затем идёт снизу вверх идущими подряд блоками. Именно это избавляет от ошибки самописного цикла, который удаляет не те строки, когда позиции начинают сдвигаться.

Строки исчезают насовсем: только очищает их clearRowsByConditional.

Лист означает весь его диапазон данных, и удаляются строки целиком. Диапазон означает только его ячейки: они удаляются, ячейки под ними поднимаются, а столбцы рядом с диапазоном остаются на месте. В обоих случаях предикат получает позицию на листе, а отказ опустошить лист касается формы с листом, где строка должна остаться хотя бы одна.

Параметры

Параметр

Тип

Описание

target

GoogleAppsScript.Spreadsheet.Sheet \| GoogleAppsScript.Spreadsheet.Range

Лист, с которым работаем, или диапазон, внутри которого работаем: читаются только его ячейки, и удаляются только они.

predicate

RowPredicate

Получает ячейки строки, её позицию от единицы и — если задан headerRow — строку с ключами по именам столбцов. Верните true для строк, с которыми нужно что-то сделать.

options (необязательный) = {}

RowConditionalOptions \| null \| undefined

headerRow указывает строку с именами столбцов. Если она задана, каждая строка приходит с ключами по этим именам, а сама строка заголовков выбывает из кандидатов.

Возвращает

number — сколько их было затронуто.

Исключения

Исключение

Условие

InvalidSheetException

первый аргумент не является ни листом, ни диапазоном.

IllegalArgumentException

предикат не функция или позиция заголовка не положительное целое.

Примеры

Применение

const sheet = SpreadsheetApp.getActiveSheet(); deleteRowsByConditional(sheet, (values, position, row) => row.status === "done", { headerRow: 1 });

Внутри одного блока

const sheet = SpreadsheetApp.getActiveSheet(); // Only B2:D100 is read, and only those cells move up. deleteRowsByConditional(sheet.getRange("B2:D100"), (values) => values.every((cell) => cell === ""));

Смотрите также

Исходный код

src/appsscript/sheet/deleteRowsByConditional.ts

23 September 2026

Эта документация сгенерирована нейросетью (Claude) на основе исходного кода библиотеки.