Фильтры позволяют сортировать и фильтровать данные, отображаемые при просмотре электронной таблицы. Фильтры не изменяют значения данных в таблице. Вы можете использовать фильтры для временного скрытия или сортировки информации. Данные, соответствующие заданным критериям фильтра, не отображаются, пока фильтр включён. С помощью представлений фильтров вы также можете сохранять различные именованные фильтры и переключаться между ними в любое время.
Ниже приведены некоторые примеры использования фильтров:
- Сортируйте данные по определённому столбцу. Например, сортируйте записи пользователей по фамилии.
- Скрыть данные, соответствующие определённому условию. Например, скрыть все записи старше 2 лет.
- Скрыть данные, соответствующие определённому значению. Например, скрыть все задачи со статусом «закрыто».
Базовый фильтр
BasicFilter
для электронной таблицы — это фильтр по умолчанию, который применяется при каждом просмотре таблицы. На каждом листе таблицы может быть один базовый фильтр. Вы можете отключить базовый фильтр, очистив его. Это удалит фильтр и все его настройки из таблицы. Чтобы снова включить тот же фильтр, необходимо заново задать критерии.
Управление базовым фильтром
Чтобы установить или очистить базовый фильтр, используйте метод spreadsheets.batchUpdate
с соответствующим типом запроса:
- Для установки базового фильтра используйте метод
SetBasicFilterRequest
. - Чтобы очистить базовый фильтр, используйте метод
ClearBasicFilterRequest
.
Чтобы получить список базовых фильтров, используйте метод spreadsheets.get
и задайте параметру URL fields
значение sheets/basicFilter
. Следующий пример кода spreadsheets.get
показывает URL Google Таблиц с маской полей :
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/basicFilter)
Фильтр просмотров
FilterView
— это именованный фильтр, который можно включать и отключать в любое время. В электронной таблице может быть несколько представлений фильтров, но одновременно можно применять только одно из них.
Ниже приведены некоторые примеры использования представлений фильтров:
- У вас есть несколько различных фильтров, между которыми вы хотите переключаться при просмотре данных.
- У вас нет прав на редактирование таблицы, но вы всё равно хотите применить фильтр. В этом случае вы можете создать временное представление фильтра, которое будет видно только вам.
Вы хотите, чтобы каждый пользователь, с которым вы делитесь своей таблицей, видел данные по-разному. Вы можете указать нужный режим фильтрации, указав
spreadsheetId
иfilterViewId
в URL-адресе таблицы. Для этого используйтеfilterViewId
возвращаемый в ответе при создании режима фильтрации.В следующем примере кода показан URL-адрес Google Таблиц с фильтром:
https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0&fvid=FILTER_VIEW_ID
Управление представлениями фильтров
Чтобы создать, дублировать, изменить или удалить представления фильтров, используйте метод spreadsheets.batchUpdate
с соответствующим типом запроса:
- Для создания представления фильтра используйте метод
AddFilterViewRequest
. - Чтобы создать копию представления фильтра, используйте метод
DuplicateFilterViewRequest
. - Чтобы изменить свойства представления фильтра, используйте метод
UpdateFilterViewRequest
. - Чтобы удалить представление фильтра, используйте метод
DeleteFilterViewRequest
.
Чтобы получить список всех представлений фильтров, используйте метод spreadsheets.get
и задайте параметру URL fields
значение sheets/filterViews
. В следующем примере кода spreadsheets.get
показан URL Google Таблиц с маской полей :
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/filterViews)
Представление фильтра
В следующем примере кода показано JSON-представление объекта FilterView
. Объект BasicFilter
аналогичен, за исключением того, что в нём отсутствуют поля filterViewId
и title
, а также он не может использовать именованный диапазон.
{
"filterViewId": number,
"title": string,
"range": {
object(GridRange)
},
"namedRangeId": string,
"sortSpecs": [
{
object(SortSpec)
}
],
"criteria": {
string: {
object(FilterCriteria)
},
...
}
}
Пример данных
Остальная часть документа ссылается на пример таблицы данных о продажах ниже:
А | Б | С | Д | Э | Ф | Г | |
1 | Категория товара | Номер модели | Расходы | Количество | Область | Продавец | Дата отправки |
2 | Колесо | W-24 | 20,50 долларов | 4 | Запад | Бет | 01.03.2016 |
3 | Дверь | Д-01Х | 15,00 долларов США | 2 | Юг | Амир | 15.03.2016 |
4 | Рамка | ФР-0Б1 | 34,00 доллара США | 8 | Восток | Ханна | 3/12/2016 |
5 | Панель | П-034 | 6,00 долларов | 4 | Север | Девин | 15.03.2016 |
6 | Панель | П-052 | 11,50 долларов США | 7 | Восток | Эрик | 16.05.2016 |
7 | Колесо | W-24 | 20,50 долларов | 11 | Юг | Шелдон | 30.04.2016 |
8 | Двигатель | ЕНГ-0161 | 330,00 долларов США | 2 | Север | Джесси | 02.07.2016 |
Характеристики сортировки
Фильтр может иметь несколько спецификаций сортировки. Эти спецификации определяют способ сортировки данных и применяются в указанном порядке. Атрибут SortSpec.dimensionIndex
указывает индекс столбца, к которому должна применяться сортировка.
В следующем примере кода показана спецификация сортировки:
[
{
"dimensionIndex": 3,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 6,
"sortOrder": "ASCENDING"
}
]
При применении к примеру данных о продажах эта спецификация сначала сортирует по «Количеству», а затем, если в двух строках количество одинаковое, по «Дате отгрузки».
А | Б | С | Д | Э | Ф | Г | |
1 | Категория товара | Номер модели | Расходы | Количество | Область | Продавец | Дата отправки |
2 | Дверь | Д-01Х | 15,00 долларов США | 2 | Юг | Амир | 15.03.2016 |
3 | Двигатель | ЕНГ-0161 | 330,00 долларов США | 2 | Север | Джесси | 02.07.2016 |
4 | Колесо | W-24 | 20,50 долларов | 4 | Запад | Бет | 01.03.2016 |
5 | Панель | П-034 | 6,00 долларов | 4 | Север | Девин | 15.03.2016 |
6 | Панель | П-052 | 11,50 долларов США | 7 | Восток | Эрик | 16.05.2016 |
7 | Рамка | ФР-0Б1 | 34,00 доллара США | 8 | Восток | Ханна | 3/12/2016 |
8 | Колесо | W-24 | 20,50 долларов | 11 | Юг | Шелдон | 30.04.2016 |
Критерии фильтра
Метод FilterCriteria
определяет, какие данные таблицы отображаются или скрываются в базовом фильтре или представлении фильтра. Каждый критерий зависит от значений в определённом столбце. Критерии фильтра предоставляются в виде карты, где ключами являются индексы столбцов, а значениями — критерии.
Для критериев, заданных с помощью логического condition
, для отображения значений это условие должно быть True
. Это условие не переопределяет hiddenValues
. Если значение указано в hiddenValues
, все совпадения для него по-прежнему будут скрыты.
В следующем примере кода показана карта критериев фильтрации:
{
0: {
'hiddenValues': ['Panel']
},
6: {
'condition': {
'type': 'DATE_BEFORE',
'values': {
'userEnteredValue': '4/30/2016'
}
}
}
}
При применении к примеру данных о продажах этот критерий показывает только строки, в которых «Категория товара» не равна «Панель», а «Дата отправки» приходится на период до 30 апреля 2016 г.
А | Б | С | Д | Э | Ф | Г | |
1 | Категория товара | Номер модели | Расходы | Количество | Область | Продавец | Дата отправки |
2 | Колесо | W-24 | 20,50 долларов | 4 | Запад | Бет | 01.03.2016 |
3 | Дверь | Д-01Х | 15,00 долларов США | 2 | Юг | Амир | 15.03.2016 |
4 | Рамка | ФР-0Б1 | 34,00 доллара США | 8 | Восток | Ханна | 3/12/2016 |
Образец
В следующем примере кода показано, как создать представление фильтра, дублировать его, а затем обновить дублированную версию, используя приведенный выше пример данных о продажах .