Class FilterCriteria

ФильтрКритерии

Используйте этот класс, чтобы получить информацию или скопировать критерии существующих фильтров.

Общее использование

Копировать критерии

Следующий образец получает фильтр, который применяется к диапазону A1:C20 , получает критерии, применяемые к столбцу C, и копирует критерии в столбец B.
let ss = SpreadsheetApp.getActiveSheet();
let range = ss.getRange("A1:C20");
// Copies the filter criteria applied to column C.
let filter = range.getFilter();
let criteria = filter.getColumnFilterCriteria(3).copy().build();
// Applies the copied criteria to column B. The copied criteria overwrites any existing
// criteria on column B.
filter.setColumnFilterCriteria(2, criteria);

Получить значения, скрытые фильтром

Следующий пример получает фильтр, который применяется к заданному диапазону, и регистрирует значения из столбца B, которые фильтр скрывает.
let ss = SpreadsheetApp.getActiveSheet();
let range = ss.getRange("A1:C20");
let filter = range.getFilter();
// Gets the filter criteria applied to column B, then gets the hidden values.
let filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues();
// Logs the hidden values.
console.log(filterCriteria);

Методы

Метод Тип возврата Краткое описание
copy() FilterCriteriaBuilder Копирует этот критерий фильтра и создает построитель критериев, который можно применить к другому фильтру.
getCriteriaType() BooleanCriteria Возвращает логический тип критерия, например, CELL_EMPTY .
getCriteriaValues() Object[] Возвращает массив аргументов для логических критериев.
getHiddenValues() String[] Возвращает значения, которые скрывает фильтр.
getVisibleBackgroundColor() Color Возвращает цвет фона, используемый в качестве критерия фильтра.
getVisibleForegroundColor() Color Возвращает цвет переднего плана, используемый в качестве критерия фильтра.
getVisibleValues() String[] Возвращает значения, которые показывает фильтр сводной таблицы.

Подробная документация

copy()

Копирует этот критерий фильтра и создает построитель критериев, который можно применить к другому фильтру.

Вы можете использовать этот метод с любым типом фильтра. Если вы используете фильтр листа, вы можете скопировать критерии в другой столбец.

let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
// Makes a copy of the filter criteria applied to column C.
let criteria = filter.getColumnFilterCriteria(3).copy().build();
// Applies the copied criteria to column B. The copied criteria overwrites any existing
// criteria on column B.
filter.setColumnFilterCriteria(2, criteria);

Возвращаться

FilterCriteriaBuilder — Построитель критериев фильтра на основе этого критерия фильтра.


getCriteriaType()

Возвращает логический тип критерия, например, CELL_EMPTY . Чтобы узнать о типах логических критериев, см. перечисление BooleanCriteria .

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

Вы можете использовать этот метод для любого типа фильтра. Если критерий фильтра не является логическим условием, возвращает null .

let ss = SpreadsheetApp.getActiveSheet();
// Gets the filter on the active sheet.
let filter = ss.getFilter();
// Gets the criteria type and returns a string representing the criteria type object.
let criteriaType = filter.getColumnFilterCriteria(2)
                         .getCriteriaType()
                         .toString();
// Logs the criteria type.
console.log(criteriaType);

Возвращаться

BooleanCriteria — Тип логического критерия или null , если критерий не является логическим условием.


getCriteriaValues()

Возвращает массив аргументов для логических критериев. Некоторые логические типы критериев не имеют аргументов и возвращают пустой массив, например, CELL_NOT_EMPTY .

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

  • Чтобы получить тип логического критерия, используйте getCriteriaType() .
  • Чтобы использовать тип и значения критериев для создания или изменения условий фильтра, см. FilterCriteriaBuilder.withCriteria(criteria, args) .

    Вы можете использовать этот метод для любого типа фильтра.

    let ss = SpreadsheetApp.getActiveSheet();
    let filter = ss.getFilter();
    // Gets the values of the boolean criteria and logs them. For example, if the boolean
    // condition is whenNumberGreaterThan(10), then the logged value is 10.
    let criteriaValues = filter.getColumnFilterCriteria(2).getCriteriaValues();
    console.log(criteriaValues);

    Возвращаться

    Object[] — Массив аргументов, соответствующих типу логического критерия. Количество аргументов и их тип соответствуют соответствующему методу when...() класса FilterCriteriaBuilder .


getHiddenValues()

Возвращает значения, которые скрывает фильтр.

Используйте этот критерий с фильтрами на листах Grid , типе листа по умолчанию. Возвращает null , если вы вызываете этот метод для других типов фильтров.

let ss = SpreadsheetApp.getActiveSheet();
let range = ss.getRange("A1:C20");
let filter = range.getFilter();
// Gets the filter criteria applied to column B, then gets the hidden values.
let filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues();
// Logs the hidden values.
console.log(filterCriteria);

Возвращаться

String[] — Массив значений, которые скрывает фильтр.


getVisibleBackgroundColor()

Возвращает цвет фона, используемый в качестве критерия фильтрации. Ячейки с этим цветом фона остаются видимыми.

Используйте этот критерий с фильтрами на листах Grid , типе листа по умолчанию. Возвращает null , если вы вызываете этот метод для других типов фильтров.

let ss = SpreadsheetApp.getActiveSheet();
let range = ss.getRange("A1:C20");
// Logs the background color that column B is filtered by as a hexadecimal string.
let filter = range.getFilter();
let color = filter.getColumnFilterCriteria(2)
                  .getVisibleBackgroundColor()
                  .asRgbColor()
                  .asHexString();
console.log(color);

Возвращаться

Color — цвет фона, используемый в качестве критерия фильтра.


getVisibleForegroundColor()

Возвращает цвет переднего плана, используемый в качестве критерия фильтра. Ячейки с этим цветом переднего плана остаются видимыми.

Используйте этот критерий с фильтрами на листах Grid , типе листа по умолчанию. Возвращает null , если вы вызываете этот метод для других типов фильтров.

let ss = SpreadsheetApp.getActiveSheet();
let range = ss.getRange("A1:C20");
// Logs the foreground color that column B is filtered by as a hexadecimal string.
let filter = range.getFilter();
let color = filter.getColumnFilterCriteria(2)
                  .getVisibleForegroundColor()
                  .asRgbColor()
                  .asHexString();
console.log(color);

Возвращаться

Color — цвет переднего плана, используемый в качестве критерия фильтра.


getVisibleValues()

Возвращает значения, которые показывает фильтр сводной таблицы.

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

let ss = SpreadsheetApp.getActiveSheet();
// Gets the first pivot table on the sheet, then gets the visible values of its first filter.
pivotTable = ss.getPivotTables()[0];
pivotFilterValues = pivotTable.getFilters()[0].getFilterCriteria().getVisibleValues();
// Logs the visible values.
console.log(pivotFilterValues);

Возвращаться

String[] — Массив значений, которые показывает фильтр сводной таблицы.