Фильтры позволяют сортировать и фильтровать данные, которые вы видите при просмотре электронной таблицы. Фильтры не меняют значения данных в вашей электронной таблице. Вы можете использовать фильтры, чтобы временно скрыть или отсортировать информацию. Данные, соответствующие указанным критериям фильтра, не отображаются, пока фильтр включен. С помощью представлений фильтров вы также можете сохранять фильтры с разными именами и переключаться между ними в любое время.
Ниже приведены некоторые примеры использования фильтров:
- Сортировка данных по определенному столбцу. Например, отсортируйте записи пользователей по фамилии.
- Скрыть данные, соответствующие определенному условию. Например, скрыть все записи старше 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 | Дверь | D-01X | 15,00 долларов США | 2 | Юг | Амир | 15.03.2016 |
4 | Рамка | ФР-0Б1 | $34,00 | 8 | Восток | Ханна | 12.03.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 | Дверь | D-01X | 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 | Восток | Ханна | 12.03.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 | Дверь | D-01X | 15,00 долларов США | 2 | Юг | Амир | 15.03.2016 |
4 | Рамка | ФР-0Б1 | $34,00 | 8 | Восток | Ханна | 12.03.2016 |
Образец
В следующем примере кода показано, как создать представление фильтра, продублировать его, а затем обновить дублированную версию, используя приведенный выше пример данных о продажах .