Class FilterCriteria

FilterCriteria

您可以使用這個類別取得現有篩選器的相關資訊或複製條件。

常見的應用方式

複製條件

以下範例會取得適用於 A1:C20 範圍的篩選器、取得 C 欄套用的條件,並將條件複製到 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);

取得由篩選條件隱藏的值

以下範例會取得適用於指定範圍的篩選器,並記錄篩選器隱藏的 B 欄值。
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);

方法

方法傳回類型簡短說明
copy()FilterCriteriaBuilder複製這個篩選條件,並建立可以套用到另一個篩選器的條件建構工具。
getCriteriaType()BooleanCriteria傳回條件的布林值類型,例如 CELL_EMPTY
getCriteriaValues()Object[]傳回布林條件的引數陣列。
getHiddenValues()String[]傳回篩選器隱藏的值。
getVisibleBackgroundColor()Color傳回做為篩選條件使用的背景顏色。
getVisibleForegroundColor()Color傳回用做篩選條件的前景顏色。
getVisibleValues()String[]傳回資料透視表篩選器顯示的值。

內容詳盡的說明文件

copy()

複製這個篩選條件,並建立可以套用到另一個篩選器的條件建構工具。

這個方法可搭配任何類型的篩選器使用。如果您使用工作表篩選器,可以將條件複製到其他資料欄。

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);

回攻員

FilterCriteriaBuilder:根據這個篩選條件建立的篩選條件建構工具。


getCriteriaType()

傳回條件的布林值類型,例如 CELL_EMPTY。如要瞭解布林條件的類型,請參閱 BooleanCriteria 列舉。

使用者通常使用這個方法在篩選器中加入布林條件條件,而不取代現有條件。

此方法適用於任何類型的篩選器。如果篩選條件並非布林值條件,就會傳回 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);

回攻員

BooleanCriteria:布林值條件的類型;如果條件不是布林條件,則顯示 null


getCriteriaValues()

傳回布林條件的引數陣列。部分佈林條件類型沒有引數,且會傳回空白陣列,例如 CELL_NOT_EMPTY

使用者通常使用這個方法在篩選器中加入布林條件條件,而不取代現有條件。

  • 如要取得布林值條件類型,請使用 getCriteriaType()
  • 如要使用條件類型和條件值建立或修改篩選條件,請參閱 FilterCriteriaBuilder.withCriteria(criteria, args)

    這個方法可用於任何類型的篩選器。

    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);

    回攻員

    Object[]:適用於布林值條件類型的引數陣列。引數數量及其類型與 FilterCriteriaBuilder 類別對應的 when...() 方法相符。


getHiddenValues()

傳回篩選器隱藏的值。

您可以利用這項條件與 Grid 工作表 (預設工作表類型) 的篩選器搭配使用。 如果您針對其他類型的篩選器呼叫此方法,系統會傳回 null

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);

回攻員

String[]:篩選器隱藏的值陣列。


getVisibleBackgroundColor()

傳回做為篩選條件使用的背景顏色。具有這種背景顏色的儲存格會保持顯示狀態。

您可以利用這項條件與 Grid 工作表 (預設工作表類型) 的篩選器搭配使用。 如果您針對其他類型的篩選器呼叫此方法,系統會傳回 null

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);

回攻員

Color:做為篩選條件使用的背景顏色。


getVisibleForegroundColor()

傳回用做篩選條件的前景顏色。具有此前景顏色的儲存格會保持顯示。

您可以利用這項條件與 Grid 工作表 (預設工作表類型) 的篩選器搭配使用。 如果您針對其他類型的篩選器呼叫此方法,系統會傳回 null

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);

回攻員

Color:用做篩選條件的前景顏色。


getVisibleValues()

傳回資料透視表篩選器顯示的值。

這項條件僅適用於篩選未連結至資料庫的資料透視表。 針對其他類型的篩選器傳回空白陣列。

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);

回攻員

String[]:資料透視表篩選器顯示的值陣列。