Ten dokument zawiera informacje o używaniu filtrów do sortowania i filtrowania danych wyświetlanych w a arkuszu kalkulacyjnym.
Filtry umożliwiają sortowanie i filtrowanie danych wyświetlanych podczas przeglądania arkusza kalkulacyjnego. Filtry nie zmieniają wartości danych w arkuszu kalkulacyjnym. Za pomocą filtrów możesz tymczasowo ukryć lub posortować informacje. Gdy filtr jest włączony, dane spełniające określone kryteria filtra nie są wyświetlane. Dzięki widokom filtrów możesz też zapisywać różne nazwane filtry i przełączać się między nimi w dowolnym momencie.
Aby filtrować dane zwracane w żądaniu Google Sheets API, użyj obiektu
DataFilter. Więcej informacji znajdziesz w artykule Odczytywanie, zapisywanie i wyszukiwanie
metadanych.
Przykłady użycia filtrów
Oto kilka przykładów użycia filtrów:
- Sortowanie danych według określonej kolumny. Na przykład sortowanie rekordów użytkowników według nazwiska.
- Ukrywanie danych spełniających określony warunek. Na przykład ukrywanie wszystkich rekordów starszych niż 2 lata.
- Ukrywanie danych pasujących do określonej wartości. Na przykład ukrywanie wszystkich problemów o stanie „zamknięty”.
Filtr podstawowy
Obiekt
BasicFilter
arkusza kalkulacyjnego to filtr domyślny, który jest stosowany za każdym razem, gdy ktoś
wyświetla arkusz. Arkusze kalkulacyjne mogą mieć tylko 1 filtr podstawowy na
arkusz. Filtr podstawowy możesz wyłączyć, usuwając go. Spowoduje to usunięcie filtra i wszystkich jego ustawień z arkusza kalkulacyjnego. Jeśli chcesz ponownie włączyć ten sam filtr, musisz ponownie ustawić kryteria.
Zarządzanie filtrem podstawowym
Aby ustawić lub usunąć filtr podstawowy, użyj metody
spreadsheets.batchUpdate
z odpowiednim typem żądania:
- Aby ustawić filtr podstawowy, użyj
SetBasicFilterRequestmetody. - Aby usunąć filtr podstawowy, użyj
ClearBasicFilterRequestmetody.
Aby wyświetlić filtr podstawowy, użyj metody
spreadsheets.get
i ustaw parametr URL fields na sheets/basicFilter. Poniższy
spreadsheets.get przykładowy kod pokazuje adres URL Arkuszy Google z maską
pola:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/basicFilter
Widoki filtrów
A
FilterView
to nazwany filtr, który możesz włączać i wyłączać w dowolnym momencie. Arkusz może mieć zapisanych wiele widoków filtrów, ale w danym momencie możesz zastosować tylko 1. Arkusz może też zawierać zarówno filtr podstawowy, jak i wiele widoków filtrów, ale nie możesz zastosować ich jednocześnie w tym samym zakresie danych.
Przykłady użycia widoków przefiltrowanych
Oto kilka przykładów użycia widoków filtrów:
- Masz kilka różnych filtrów, między którymi chcesz się przełączać podczas wyświetlania danych.
- Nie masz uprawnień do edycji arkusza kalkulacyjnego, ale chcesz zastosować filtr. W takim przypadku możesz utworzyć tymczasowy widok przefiltrowany, który będzie widoczny tylko dla Ciebie.
Chcesz, aby każda osoba, której udostępniasz arkusz kalkulacyjny, inaczej wyświetlała dane. Możesz określić widok przefiltrowany, który chcesz zastosować, podając wartości
spreadsheetIdifilterViewIdw adresie URL arkusza kalkulacyjnego. Aby to zrobić, użyj wartościfilterViewIdzwróconej w odpowiedzi podczas tworzenia widoku przefiltrowanego.Poniższy przykładowy kod pokazuje adres URL Arkuszy z widokiem filtra:
https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0&fvid=FILTER_VIEW_ID
Zarządzanie widokami filtrów
Aby utworzyć, zduplikować, zmodyfikować lub usunąć widoki filtrów, użyj metody
spreadsheets.batchUpdate
z odpowiednim typem żądania:
- Aby utworzyć widok przefiltrowany, użyj metody
AddFilterViewRequest. - Aby utworzyć kopię widoku przefiltrowanego, użyj
DuplicateFilterViewRequestmetody. - Aby zmodyfikować właściwości widoku przefiltrowanego, użyj metody
UpdateFilterViewRequest. - Aby usunąć widok przefiltrowany, użyj
DeleteFilterViewRequestmetody.
Aby wyświetlić wszystkie widoki filtrów, użyj metody
spreadsheets.get
i ustaw parametr URL fields na sheets/filterViews. Poniższy
spreadsheets.get przykładowy kod pokazuje adres URL Arkuszy z maską
pola:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/filterViews
Zapis JSON filtra
Poniższy przykładowy kod pokazuje zapis JSON obiektu
FilterView. Obiekt
BasicFilter
jest taki sam, z wyjątkiem tego, że nie zawiera pól filterViewId i title,
oraz nie może używać zakresu nazwanego.
{
"filterViewId": number,
"title": string,
"range": {
object(GridRange)
},
"namedRangeId": string,
"sortSpecs": [
{
object(SortSpec)
}
],
"criteria": {
string: {
object(FilterCriteria)
},
...
}
}
Przykładowe dane o sprzedaży
W pozostałej części tego dokumentu odwołujemy się do tej przykładowej tabeli danych o sprzedaży:
| A | B | C | D | E | F | G | |
| 1 | Kategoria produktu | Numer modelu | Koszt | Ilość | Region | Pracownik działu sprzedaży | Termin wysyłki |
| 2 | Diabelski młyn | W-24 | 20,50 USD | 4 | Zachód | Beth | 1.03.2016 |
| 3 | Drzwi | D-01X | 15,00 USD | 2 | Południe | Amir | 15.03.2016 |
| 4 | Rama | FR-0B1 | 34,00 USD | 8 | Wschód | Hannah | 12.03.2016 |
| 5 | Panel | P-034 | 6,00 USD | 4 | Północ | Devyn | 15.03.2016 |
| 6 | Panel | P-052 | 11,50 USD | 7 | Wschód | Erik | 16.05.2016 |
| 7 | Diabelski młyn | W-24 | 20,50 USD | 11 | Południe | Sheldon | 30.04.2016 |
| 8 | Silnik | ENG-0161 | 330,00 USD | 2 | Północ | Jessie | 2.07.2016 |
Specyfikacje sortowania
Filtr może mieć wiele specyfikacji sortowania. Te specyfikacje określają sposób sortowania danych i są stosowane w podanej kolejności. Atrybut
SortSpec.dimensionIndex
określa indeks kolumny, do której ma być stosowane sortowanie.
Poniższy przykładowy kod pokazuje specyfikację sortowania:
[
{
"dimensionIndex": 3,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 6,
"sortOrder": "ASCENDING"
}
]
W przypadku przykładowych danych o sprzedaży ta specyfikacja najpierw sortuje według kolumny „Ilość”, a potem, jeśli 2 wiersze mają tę samą ilość, według kolumny „Termin wysyłki”.
| A | B | C | D | E | F | G | |
| 1 | Kategoria produktu | Numer modelu | Koszt | Ilość | Region | Pracownik działu sprzedaży | Termin wysyłki |
| 2 | Drzwi | D-01X | 15,00 USD | 2 | Południe | Amir | 15.03.2016 |
| 3 | Silnik | ENG-0161 | 330,00 USD | 2 | Północ | Jessie | 2.07.2016 |
| 4 | Diabelski młyn | W-24 | 20,50 USD | 4 | Zachód | Beth | 1.03.2016 |
| 5 | Panel | P-034 | 6,00 USD | 4 | Północ | Devyn | 15.03.2016 |
| 6 | Panel | P-052 | 11,50 USD | 7 | Wschód | Erik | 16.05.2016 |
| 7 | Rama | FR-0B1 | 34,00 USD | 8 | Wschód | Hannah | 12.03.2016 |
| 8 | Diabelski młyn | W-24 | 20,50 USD | 11 | Południe | Sheldon | 30.04.2016 |
Kryteria filtra
Obiekt
FilterCriteria
określa, które dane arkusza kalkulacyjnego są wyświetlane lub ukrywane w filtrze podstawowym lub
widoku przefiltrowanym. Każde kryterium zależy od wartości w określonej kolumnie. Kryteria filtra podajesz jako mapę, w której klucze są indeksami kolumn, a wartości – kryteriami.
W przypadku kryteriów określonych za pomocą logicznego
condition,
warunek musi mieć wartość true, aby wartości były wyświetlane. Warunek nie
zastępuje
hiddenValues.
Jeśli wartość jest wymieniona w sekcji hiddenValues, wszystkie pasujące do niej wartości są nadal ukryte.
Poniższy przykładowy kod pokazuje mapę kryteriów filtra:
{
0: {
'hiddenValues': ['Panel']
},
6: {
'condition': {
'type': 'DATE_BEFORE',
'values': {
'userEnteredValue': '4/30/2016'
}
}
}
}
W przypadku przykładowych danych o sprzedaży te kryteria pokazują tylko wiersze, w których wartość kolumny „Kategoria produktu” nie jest równa „Panel”, a wartość kolumny „Termin wysyłki” jest wcześniejsza niż „30 kwietnia 2016 r.”.
| A | B | C | D | E | F | G | |
| 1 | Kategoria produktu | Numer modelu | Koszt | Ilość | Region | Pracownik działu sprzedaży | Termin wysyłki |
| 2 | Diabelski młyn | W-24 | 20,50 USD | 4 | Zachód | Beth | 1.03.2016 |
| 3 | Drzwi | D-01X | 15,00 USD | 2 | Południe | Amir | 15.03.2016 |
| 4 | Rama | FR-0B1 | 34,00 USD | 8 | Wschód | Hannah | 12.03.2016 |
Przykładowy kod widoku przefiltrowanego
Poniższy przykładowy kod pokazuje, jak utworzyć widok przefiltrowany, zduplikować go, a następnie zaktualizować zduplikowaną wersję za pomocą przykładowych danych o sprzedaży.