Class FilterCriteria

FilterCriteria

您可以使用此类获取有关现有过滤器的条件的信息,或复制这些条件。

常见用途

复制条件

以下示例获取适用于范围 A1:C20 的过滤器,获取应用于 C 列的条件,并将该条件复制到 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);

获取过滤器隐藏的值

以下示例获取适用于给定范围的过滤器,并记录过滤器隐藏的 B 列中的值。
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);

方法

方法返回值类型简介
copy()FilterCriteriaBuilder复制此过滤器条件,并创建一个条件构建器,您可以将其应用于另一个过滤器。
getCriteriaType()BooleanCriteria|null返回条件的布尔类型,例如 CELL_EMPTY
getCriteriaValues()Object[]返回布尔条件的参数数组。
getHiddenValues()String[]返回过滤器隐藏的值。
getVisibleBackgroundColor()Color|null返回用作过滤器条件的背景颜色。
getVisibleForegroundColor()Color|null返回用作过滤器条件的前景颜色。
getVisibleValues()String[]返回数据透视表过滤器显示的值。

详细文档

copy()

复制此过滤器条件,并创建一个条件构建器,您可以将其应用于另一个过滤器。

您可以将此方法与任何类型的过滤器搭配使用。如果您使用的是工作表过滤器,则可以将条件复制到另一列。

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

返回

FilterCriteriaBuilder:基于此过滤器条件的过滤器条件构建器。


getCriteriaType()

返回条件的布尔类型,例如 CELL_EMPTY。如需了解布尔条件的类型,请参阅 BooleanCriteria 枚举。

人们通常使用此方法向过滤器添加布尔条件,而无需替换现有条件。

您可以将此方法用于任何类型的过滤器。如果过滤器条件不是布尔条件,则返回 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);

返回

BooleanCriteria|null:布尔条件的类型;如果条件不是布尔条件,则返回 null


getCriteriaValues()

返回布尔条件的参数数组。某些布尔条件类型没有实参,并返回一个空数组,例如 CELL_NOT_EMPTY

人们通常使用此方法向过滤器添加布尔条件,而无需替换现有条件。

  • 如需获取布尔条件类型,请使用 getCriteriaType()
  • 如需使用条件类型和条件值创建或修改过滤器条件,请参阅 FilterCriteriaBuilder.withCriteria(criteria, args).

    您可以将此方法用于任何类型的过滤器。

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

    返回

    Object[]:适用于布尔条件类型的实参数组。实参的数量 及其类型与相应的 when...() 方法和 FilterCriteriaBuilder 类匹配。


getHiddenValues()

返回过滤器隐藏的值。

将此条件与 Grid 工作表(默认工作表类型)上的过滤器搭配使用。 如果您为其他类型的过滤器调用此方法,则返回 null

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

返回

String[]:过滤器隐藏的值的数组。


getVisibleBackgroundColor()

返回用作过滤器条件的背景颜色。具有此背景颜色的单元格保持可见。

将此条件与 Grid 工作表(默认工作表类型)上的过滤器搭配使用。 如果您为其他类型的过滤器调用此方法,则返回 null

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

返回

Color|null:用作过滤器条件的背景颜色。


getVisibleForegroundColor()

返回用作过滤器条件的前景颜色。具有此前景颜色的单元格保持可见。

将此条件与 Grid 工作表(默认工作表类型)上的过滤器搭配使用。 如果您为其他类型的过滤器调用此方法,则返回 null

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

返回

Color|null:用作过滤条件的前景颜色。


getVisibleValues()

返回数据透视表过滤器显示的值。

此条件仅适用于未连接到数据库的数据透视表上的过滤器。 对于其他类型的过滤器,返回一个空数组。

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

返回

String[]:数据透视表过滤器显示的值的数组。