Class Filter

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Фильтр

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

Если на листе еще нет фильтра, создайте его с помощью Range.createFilter() .

Чтобы использовать этот класс, вы должны сначала получить доступ к фильтру листа сетки, используя Range.getFilter() или Sheet.getFilter() .

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

Удалить фильтр

Пример ниже получает фильтр на активном листе и удаляет его.
let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
// Removes the filter from the active sheet.
filter.remove();

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

Пример ниже получает фильтр на активном листе, а затем использует метод getRange() из этого класса для регистрации диапазона, к которому применяется фильтр.
let ss = SpreadsheetApp.getActiveSheet();
// Gets the existing filter on the active sheet.
let filter = ss.getFilter();
// Logs the range that the filter applies to in A1 notation.
console.log(filter.getRange().getA1Notation());

Методы

Метод Тип возврата Краткое описание
getColumnFilterCriteria(columnPosition) FilterCriteria Получает критерии фильтрации для указанного столбца или null , если к столбцу не применены критерии фильтрации.
getRange() Range Получает диапазон, к которому применяется этот фильтр.
remove() void Удаляет этот фильтр.
removeColumnFilterCriteria(columnPosition) Filter Удаляет критерии фильтра из указанного столбца.
setColumnFilterCriteria(columnPosition, filterCriteria) Filter Задает критерии фильтрации для указанного столбца.
sort(columnPosition, ascending) Filter Сортирует отфильтрованный диапазон по указанному столбцу, исключая первую строку (строку заголовка) в диапазоне, к которому применяется этот фильтр.

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

getColumnFilterCriteria(columnPosition)

Получает критерии фильтрации для указанного столбца или null , если к столбцу не применены критерии фильтрации.

Чтобы получить дополнительные сведения о критериях фильтра, свяжите этот метод с методами класса FilterCriteria .

let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
  // Gets the filter criteria applied to column B of the active sheet
  // and logs the hidden values.
let filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues();
console.log(filterCriteria);

Параметры

Имя Тип Описание
columnPosition Integer 1-индексированная позиция столбца. Например, индекс столбца B равен 2.

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

FilterCriteria — Критерии фильтра.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRange()

Получает диапазон, к которому применяется этот фильтр.

// Gets the existing filter on the active sheet.
let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
// Logs the range that the filter applies to in A1 notation.
console.log(filter.getRange().getA1Notation());

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

Range — диапазон фильтра. Чтобы получить диапазон в нотации A1, свяжите этот метод с Range.getA1Notation() .

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

remove()

Удаляет этот фильтр.

// Removes the filter from the active sheet.
let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
filter.remove();

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeColumnFilterCriteria(columnPosition)

Удаляет критерии фильтра из указанного столбца.

// Removes the filter criteria from column B.
let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
filter.removeColumnFilterCriteria(2);

Параметры

Имя Тип Описание
columnPosition Integer 1-индексированная позиция столбца. Например, индекс столбца B равен 2.

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

Filter — Фильтр для цепочки.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setColumnFilterCriteria(columnPosition, filterCriteria)

Задает критерии фильтрации для указанного столбца. Сначала создайте построитель критериев фильтра, используя SpreadsheetApp.newFilterCriteria() . Затем добавьте критерии в конструктор с помощью класса FilterCriteriaBuilder . После создания критериев установите его в качестве параметра filterCriteria для этого метода.

let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
// Builds the filter criteria to use as a parameter for setColumnFilterCriteria.
const criteria = SpreadsheetApp.newFilterCriteria()
                             .setHiddenValues(["Hello", "World"])
                             .build();
// Sets the filter criteria for column C.
filter.setColumnFilterCriteria(3, criteria);

Параметры

Имя Тип Описание
columnPosition Integer 1-индексированная позиция столбца. Например, индекс столбца B равен 2.
filterCriteria FilterCriteria Критерии фильтрации, которые необходимо установить. Если вы установите для критерия значение null , он удалит критерии фильтра из указанного столбца. Вы также можете использовать removeColumnFilterCriteria(columnPosition) .

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

Filter — Фильтр для цепочки.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

sort(columnPosition, ascending)

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

// Gets the existing filter and sorts it by column B in ascending order.
let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
filter.sort(2, true);

Параметры

Имя Тип Описание
columnPosition Integer 1-индексированная позиция столбца. Например, индекс столбца B равен 2.
ascending Boolean Если true , отфильтрованный диапазон сортируется в порядке возрастания; если false , сортирует отфильтрованный диапазон в порядке убывания.

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

Filter — Фильтр для цепочки.

Авторизация

Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets