Class Filter

过滤

使用此类来修改Grid工作表(默认类型为 工作表。网格工作表是包含未与数据库关联的数据的常规工作表。

如果工作表中还没有过滤条件,请使用 Range.createFilter() 创建一个。

如需使用此类,您必须先使用 Range.getFilter()Sheet.getFilter() 访问网格工作表过滤器。

常见用途

移除过滤条件

以下示例会获取当前工作表中的过滤器并将其移除。
let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
// Removes the filter from the active sheet.
filter.remove();

获取过滤器适用的范围

以下示例会获取当前工作表中的过滤条件,然后使用 getRange() 方法(位于 该类来记录过滤器应用到的范围。
let ss = SpreadsheetApp.getActiveSheet();
// Gets the existing filter on the active sheet.
let filter = ss.getFilter();
// Logs the range that the filter applies to in A1 notation.
console.log(filter.getRange().getA1Notation());

方法

方法返回类型简介
getColumnFilterCriteria(columnPosition)FilterCriteria获取指定列的过滤条件,或者获取 null(如果列不包含 过滤条件。
getRange()Range获取此过滤器适用的范围。
remove()void移除此过滤条件。
removeColumnFilterCriteria(columnPosition)Filter从指定列删除过滤条件。
setColumnFilterCriteria(columnPosition, filterCriteria)Filter设置指定列的过滤条件。
sort(columnPosition, ascending)Filter按指定列对过滤后的范围进行排序,但排除 应用此过滤器的范围

详细文档

getColumnFilterCriteria(columnPosition)

获取指定列的过滤条件,或者获取 null(如果列不包含 过滤条件。

要获取有关过滤条件的更多详细信息,请将此方法与 FilterCriteria 类。

let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
  // Gets the filter criteria applied to column B of the active sheet
  // and logs the hidden values.
let filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues();
console.log(filterCriteria);

参数

名称类型说明
columnPositionInteger列的位置(从 1 开始编号)。例如,B 列的索引为 2。

返回

FilterCriteria - 过滤条件。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRange()

获取此过滤器适用的范围。

// Gets the existing filter on the active sheet.
let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
// Logs the range that the filter applies to in A1 notation.
console.log(filter.getRange().getA1Notation());

返回

Range - 过滤条件的范围。如需获取采用 A1 表示法的范围,请将此方法与 Range.getA1Notation() 链接起来。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

remove()

移除此过滤条件。

// Removes the filter from the active sheet.
let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
filter.remove();

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeColumnFilterCriteria(columnPosition)

从指定列删除过滤条件。

// Removes the filter criteria from column B.
let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
filter.removeColumnFilterCriteria(2);

参数

名称类型说明
columnPositionInteger列的位置(从 1 开始编号)。例如,B 列的索引为 2。

返回

Filter - 用于链接的过滤条件。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setColumnFilterCriteria(columnPosition, filterCriteria)

设置指定列的过滤条件。首先,创建过滤条件生成器 使用 SpreadsheetApp.newFilterCriteria()。然后向构建器添加条件 使用 FilterCriteriaBuilder 类。创建条件后,将其设置为 此方法的 filterCriteria 参数。

let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
// Builds the filter criteria to use as a parameter for setColumnFilterCriteria.
const criteria = SpreadsheetApp.newFilterCriteria()
                             .setHiddenValues(["Hello", "World"])
                             .build();
// Sets the filter criteria for column C.
filter.setColumnFilterCriteria(3, criteria);

参数

名称类型说明
columnPositionInteger列的位置(从 1 开始编号)。例如,B 列的索引为 2。
filterCriteriaFilterCriteria要设置的过滤条件。如果将条件设为null 从指定列删除过滤条件。您也可以使用 removeColumnFilterCriteria(columnPosition)

返回

Filter - 用于链接的过滤条件。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

sort(columnPosition, ascending)

按指定列对过滤后的范围进行排序,但排除 应用此过滤器的范围

// Gets the existing filter and sorts it by column B in ascending order.
let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
filter.sort(2, true);

参数

名称类型说明
columnPositionInteger列的位置(从 1 开始编号)。例如,B 列的索引为 2。
ascendingBoolean如果为 true,则对过滤后的范围按升序排序;如果为 false,则按降序对过滤后的范围进行排序。

返回

Filter - 用于链接的过滤条件。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets