您可以使用此类获取有关现有过滤器的条件的信息,或复制这些条件。
- 如需创建新过滤器,请参阅以下内容:
- 对于工作表,请使用
Range.createFilter()。 - 对于数据透视表,请使用
PivotTable.addFilter(sourceDataColumn, filterCriteria)。 - 对于连接到数据库的工作表,请使用
DataSourceSheet.addFilter(columnName, filterCriteria)。 - 对于连接到数据库的数据透视表,请使用
DataSourcePivotTable.addFilter(columnName, filterCriteria)。
- 对于工作表,请使用
- 如需为任何类型的过滤器创建条件,请参阅
SpreadsheetApp.newFilterCriteria()和FilterCriteriaBuilder。
常见用途
复制条件
以下示例获取适用于范围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() | Filter | 复制此过滤器条件,并创建一个条件构建器,您可以将其应用于另一个过滤器。 |
get | Boolean | 返回条件的布尔类型,例如 CELL_EMPTY。 |
get | Object[] | 返回布尔条件的参数数组。 |
get | String[] | 返回过滤器隐藏的值。 |
get | Color|null | 返回用作过滤器条件的背景颜色。 |
get | Color|null | 返回用作过滤器条件的前景颜色。 |
get | 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 枚举。
人们通常使用此方法向过滤器添加布尔条件,而无需替换现有条件。
- 如需获取条件的实参,请使用
getCriteriaValues()。 - 如需使用条件类型和条件值创建或修改过滤器条件,请参阅
FilterCriteriaBuilder.withCriteria(criteria, args).
您可以将此方法用于任何类型的过滤器。如果过滤器条件不是布尔条件,则返回 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[]:数据透视表过滤器显示的值的数组。