Class FilterCriteria

Kryteriafiltrowania

Za pomocą tej klasy możesz uzyskać informacje o kryteriach istniejących filtrów lub je skopiować.

Typowe zastosowania

Kopiowanie kryteriów

W tym przykładzie pobierany jest filtr, który ma zastosowanie do zakresu A1:C20, pobierane są kryteria stosowane w kolumnie C i kopiowane są one do kolumny B.
const ss = SpreadsheetApp.getActiveSheet();
const range = ss.getRange('A1:C20');
// Copies the filter criteria applied to column C.
const filter = range.getFilter();
const 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);

Pobieranie wartości ukrytych przez filtr

Ten przykładowy skrypt pobiera filtr, który ma zastosowanie do danego zakresu, i rejestruje wartości z kolumny B, które są przez niego ukryte.
const ss = SpreadsheetApp.getActiveSheet();
const range = ss.getRange('A1:C20');
const filter = range.getFilter();
// Gets the filter criteria applied to column B, then gets the hidden values.
const filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues();
// Logs the hidden values.
console.log(filterCriteria);

Metody

MetodaZwracany typKrótki opis
copy()FilterCriteriaBuilderKopiuje to kryterium filtra i tworzy kreator kryteriów, który możesz zastosować do innego filtra.
getCriteriaType()BooleanCriteriaZwraca typ logiczny kryterium, np. CELL_EMPTY.
getCriteriaValues()Object[]Zwraca tablicę argumentów dla kryteriów logicznych.
getHiddenValues()String[]Zwraca wartości, które filtr ukrywa.
getVisibleBackgroundColor()ColorZwraca kolor tła użyty jako kryterium filtra.
getVisibleForegroundColor()ColorZwraca kolor pierwszego planu użyty jako kryterium filtra.
getVisibleValues()String[]Zwraca wartości wyświetlane przez filtr tabeli przestawnej.

Szczegółowa dokumentacja

copy()

Kopiuje to kryterium filtra i tworzy kreator kryteriów, który możesz zastosować do innego filtra.

Z tej metody możesz korzystać w przypadku dowolnego typu filtra. Jeśli używasz filtra arkusza, możesz skopiować kryteria do innej kolumny.

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

Powrót

FilterCriteriaBuilder – kreator kryteriów filtra oparty na tych kryteriach.


getCriteriaType()

Zwraca typ logiczny kryterium, np. CELL_EMPTY. Więcej informacji o typach kryteriów logicznych znajdziesz w enumeracji BooleanCriteria.

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

Możesz używać tej metody w przypadku dowolnego typu filtra. Jeśli kryteria filtra nie są warunkiem logicznym, zwracają wartość null.

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

Powrót

BooleanCriteria – typ kryterium logicznego lub null, jeśli kryterium nie jest warunkiem logicznym.


getCriteriaValues()

Zwraca tablicę argumentów dla kryteriów logicznych. Niektóre typy kryteriów logicznych nie mają argumentów i zwracają pusty tablic, np. CELL_NOT_EMPTY.

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

  • Aby uzyskać typ kryteriów logicznych, użyj getCriteriaType().
  • Aby utworzyć lub zmodyfikować kryterium filtra, korzystając z typu kryterium i jego wartości, zapoznaj się z artykułem FilterCriteriaBuilder.withCriteria(criteria, args).

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

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

    Powrót

    Object[] – tablica argumentów odpowiednich do typu kryteriów logicznych. Liczba argumentów i ich typ odpowiadają odpowiedniej metodzie when...() klasy FilterCriteriaBuilder.


getHiddenValues()

Zwraca wartości, które filtr ukrywa.

Użyj tego kryterium z filtrami w arkuszach Grid, czyli arkuszach o domyślnym typie. Zwraca null, jeśli wywołujesz tę metodę w przypadku innych typów filtrów.

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

Powrót

String[] – tablica wartości, które filtr ukrywa.


getVisibleBackgroundColor()

Zwraca kolor tła użyty jako kryterium filtra. Komórki o tym kolorze tła pozostają widoczne.

Użyj tego kryterium z filtrami w arkuszach Grid, które są domyślnym typem arkusza. Zwraca null, jeśli wywołujesz tę metodę w przypadku innych typów filtrów.

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

Powrót

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


getVisibleForegroundColor()

Zwraca kolor pierwszego planu użyty jako kryterium filtra. Komórki o tym kolorze pierwszego planu pozostają widoczne.

Użyj tego kryterium z filtrami w arkuszach Grid, czyli arkuszach o domyślnym typie. Zwraca null, jeśli wywołujesz tę metodę w przypadku innych typów filtrów.

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

Powrót

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


getVisibleValues()

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

To kryterium dotyczy tylko filtrów w tabelach przestawnych, które nie są połączone z bazą danych. W przypadku innych typów filtrów zwraca pustą tablicę.

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

Powrót

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