使用此类可获取有关现有过滤器的信息或复制现有过滤器的条件。
- 如需创建新的过滤器,请参阅以下内容:
- 对于工作表,请使用
Range.createFilter()
。 - 对于数据透视表,请使用
PivotTable.addFilter(sourceDataColumn, filterCriteria)
。 - 对于连接到数据库的工作表,请使用
DataSourceSheet.addFilter(columnName, filterCriteria)
。 - 对于连接到数据库的数据透视表,请使用
DataSourcePivotTable.addFilter(columnName, filterCriteria)
。
- 对于工作表,请使用
- 若要为任何类型的过滤器创建条件,请参阅
SpreadsheetApp.newFilterCriteria()
和FilterCriteriaBuilder
。
常见的使用情形
复制条件
以下示例会获取应用于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
枚举。
用户经常使用此方法向过滤器添加布尔值条件,而无需替换现有条件。
- 如需获取条件的参数,请使用
getCriteriaValues()
。 - 如需使用条件类型和条件值来创建或修改过滤条件,请参阅
FilterCriteriaBuilder.withCriteria(criteria, args)
。
您可以对任何类型的过滤器使用此方法。如果过滤条件不是布尔值条件,则返回 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[]
- 数据透视表过滤器显示的一组值。