Class FilterCriteria

Kryteria filtrowania

Użyj tej klasy, aby uzyskać informacje o istniejących filtrach lub je skopiować.

Typowe zastosowania

Skopiuj kryteria

Poniższy przykład uzyskuje filtr pasujący do zakresu A1:C20, pobiera kryteria zastosowane do kolumny C i kopiuje je do kolumny B.
let ss = SpreadsheetApp.getActiveSheet();
let range = ss.getRange("A1:C20");
// Copies the filter criteria applied to column C.
let filter = range.getFilter();
let 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);

Pobierz wartości ukryte przez filtr

Poniższy przykład pokazuje filtr, który ma zastosowanie do danego zakresu, i rejestruje wartości z kolumny B, które filtr ukrywa.
let ss = SpreadsheetApp.getActiveSheet();
let range = ss.getRange("A1:C20");
let filter = range.getFilter();
// Gets the filter criteria applied to column B, then gets the hidden values.
let filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues();
// Logs the hidden values.
console.log(filterCriteria);

Metody

MetodaZwracany typKrótki opis
copy()FilterCriteriaBuilderKopiuje te kryteria filtrowania i tworzy narzędzie do ich stosowania.
getCriteriaType()BooleanCriteriaZwraca typ logiczny kryteriów, np. CELL_EMPTY.
getCriteriaValues()Object[]Zwraca tablicę argumentów na potrzeby kryteriów logicznych.
getHiddenValues()String[]Zwraca wartości ukryte przez filtr.
getVisibleBackgroundColor()ColorZwraca kolor tła używany jako kryterium filtra.
getVisibleForegroundColor()ColorZwraca kolor pierwszego planu używany jako kryterium filtra.
getVisibleValues()String[]Zwraca wartości wyświetlane przez filtr tabeli przestawnej.

Szczegółowa dokumentacja

copy()

Kopiuje te kryteria filtrowania i tworzy narzędzie do ich stosowania.

Tej metody możesz używać z różnymi typami filtrów. Jeśli używasz filtra arkusza, możesz skopiować kryteria do innej kolumny.

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

Zwróć

FilterCriteriaBuilder – narzędzie do tworzenia kryteriów filtrowania oparte na tych kryteriach.


getCriteriaType()

Zwraca typ logiczny kryteriów, np. CELL_EMPTY. Aby dowiedzieć się więcej o typach kryteriów logicznych, zobacz wyliczenie BooleanCriteria.

Użytkownicy często używają tej metody, aby dodać do filtra kryteria warunków logicznych bez zastępowania dotychczasowych.

Możesz użyć tej metody w przypadku dowolnego typu filtra. Jeśli kryterium filtra jest warunku logicznem, zwraca null.

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

Zwróć

BooleanCriteria – typ kryteriów logicznych, a null – jeśli warunek jest wartością logiczną.


getCriteriaValues()

Zwraca tablicę argumentów na potrzeby kryteriów logicznych. Niektóre typy kryteriów logicznych nie zawierają argumentów i zwracają pustą tablicę, na przykład CELL_NOT_EMPTY.

Użytkownicy często używają tej metody, aby dodać do filtra kryteria warunków logicznych bez zastępowania dotychczasowych.

  • Aby uzyskać typ kryterium logicznego, użyj getCriteriaType().
  • Aby użyć typu i wartości kryteriów do tworzenia lub modyfikowania kryteriów filtra, zapoznaj się z artykułem FilterCriteriaBuilder.withCriteria(criteria, args).

    Możesz użyć tej metody w przypadku dowolnego typu filtra.

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

    Zwróć

    Object[] – tablica argumentów odpowiednich dla typu kryteriów logicznych. Liczba argumentów i ich typu są zgodne z odpowiednią metodą when...() klasy FilterCriteriaBuilder.


getHiddenValues()

Zwraca wartości ukryte przez filtr.

Użyj tych kryteriów w filtrach w arkuszach Grid – domyślnym typie arkusza. Zwraca null, jeśli wywołasz tę metodę w przypadku innych typów filtrów.

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

Zwróć

String[] – tablica wartości ukrywanych przez filtr.


getVisibleBackgroundColor()

Zwraca kolor tła używany jako kryterium filtra. Komórki z tym kolorem tła są nadal widoczne.

Użyj tych kryteriów w filtrach w arkuszach Grid – domyślnym typie arkusza. Zwraca null, jeśli wywołasz tę metodę w przypadku innych typów filtrów.

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

Zwróć

Color – kolor tła używany jako kryterium filtrowania;


getVisibleForegroundColor()

Zwraca kolor pierwszego planu używany jako kryterium filtra. Komórki z tym kolorem na pierwszym planie pozostają widoczne.

Użyj tych kryteriów w filtrach w arkuszach Grid – domyślnym typie arkusza. Zwraca null, jeśli wywołasz tę metodę w przypadku innych typów filtrów.

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

Zwróć

Color – kolor pierwszego planu używany jako kryterium filtra.


getVisibleValues()

Zwraca wartości wyświetlane przez filtr tabeli przestawnej.

Te kryteria dotyczą tylko filtrów w tabelach przestawnych, które nie są połączone z bazą danych. Zwraca pustą tablicę w przypadku innych typów filtrów.

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

Zwróć

String[] – tablica wartości wyświetlanych przez filtr tabeli przestawnej.