Class FilterCriteria

Критерии фильтрации

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

Распространенные способы применения

Критерии копирования

В следующем примере фильтр применяется к диапазону A1:C20 , критерии применяются к столбцу C, и критерии копируются в столбец B.
const ss = SpreadsheetApp.getActiveSheet();
const range = ss.getRange('A1:C20');
// Copies the filter criteria applied to column C.
const filter = range.getFilter();
const 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, которые фильтр скрывает.
const ss = SpreadsheetApp.getActiveSheet();
const range = ss.getRange('A1:C20');
const filter = range.getFilter();
// Gets the filter criteria applied to column B, then gets the hidden values.
const filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues();
// Logs the hidden values.
console.log(filterCriteria);

Методы

Метод Тип возвращаемого значения Краткое описание
copy() Filter Criteria Builder Копирует эти критерии фильтра и создает конструктор критериев, который можно применить к другому фильтру.
get Criteria Type() Boolean Criteria |null Возвращает логический тип критерия, например, CELL_EMPTY .
get Criteria Values() Object[] Возвращает массив аргументов для логических критериев.
get Hidden Values() String[] Возвращает значения, которые скрывает фильтр.
get Visible Background Color() Color |null Возвращает цвет фона, используемый в качестве критерия фильтра.
get Visible Foreground Color() Color |null Возвращает цвет переднего плана, используемый в качестве критерия фильтра.
get Visible Values() String[] Возвращает значения, отображаемые фильтром сводной таблицы.

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

copy()

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

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

const ss = SpreadsheetApp.getActiveSheet();
const filter = ss.getFilter();
// Makes a copy of the filter criteria applied to column C.
const 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);

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

Filter Criteria Builder — конструктор критериев фильтрации, основанный на этих критериях.


get Criteria Type()

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

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

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

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

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

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

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


get Criteria Values()

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

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

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

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

    const ss = SpreadsheetApp.getActiveSheet();
    const 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.
    const criteriaValues = filter.getColumnFilterCriteria(2).getCriteriaValues();
    console.log(criteriaValues);

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

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


get Hidden Values()

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

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

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

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

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


get Visible Background Color()

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

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

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

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

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


get Visible Foreground Color()

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

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

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

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

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


get Visible Values()

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

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

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

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

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