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[] - 数据透视表过滤条件显示的一组值。