过滤条件可用于对查看电子表格时看到的数据进行排序和过滤。过滤条件不会更改电子表格中的数据值。您可以使用过滤条件暂时隐藏信息或对信息进行排序。启用过滤器时,与指定过滤条件匹配的数据不会显示。借助过滤视图,您还可以保存不同的已命名过滤器,并随时在这些过滤器之间切换。
以下是过滤器的一些用例:
- 按特定列对数据进行排序。例如,按姓氏对用户记录进行排序。
- 隐藏满足特定条件的数据。例如,隐藏超过 2 年的所有记录。
- 隐藏与特定值匹配的数据。例如,隐藏状态为“已关闭”的所有问题。
基本过滤条件
电子表格的 BasicFilter
是每当有人查看电子表格时应用的默认过滤条件。电子表格的每个工作表可以有一个基本过滤条件。只需清除基本过滤条件即可将其关闭。此操作会将该过滤器及其所有设置从电子表格中移除。
如果您想重新启用同一过滤条件,则必须重新设置条件。
管理基本过滤器
如需设置或清除基本过滤条件,请将 spreadsheets.batchUpdate
方法与相应的请求类型结合使用:
- 如需设置基本过滤条件,请使用
SetBasicFilterRequest
方法。 - 如需清除基本过滤条件,请使用
ClearBasicFilterRequest
方法。
如需列出基本过滤条件,请使用 spreadsheets.get
方法并将 fields
网址参数设置为 sheets/basicFilter
。以下 spreadsheets.get
代码示例展示了包含字段掩码的 Google 表格网址:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/basicFilter)
过滤视图
FilterView
是一个已命名的过滤器,您可以随时关闭和开启。一个电子表格可以有多个过滤视图,但一次只能应用一个。
以下是过滤视图的一些使用场景示例:
- 查看数据时,您需要在多个不同的过滤条件之间切换。
- 您没有电子表格的编辑权限,但仍然想要应用过滤条件。在这种情况下,您可以创建一个只有您自己可见的临时过滤视图。
您希望与之共享电子表格的每个人都能以不同的方式查看数据。您可以通过在电子表格网址中提供
spreadsheetId
和filterViewId
来指定要应用的过滤视图。为此,请在创建过滤视图时使用响应中返回的filterViewId
。以下代码示例展示了包含过滤视图的 Google 表格网址:
https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0&fvid=FILTER_VIEW_ID
管理过滤视图
如需创建、复制、修改或删除过滤视图,请将 spreadsheets.batchUpdate
方法与相应的请求类型搭配使用:
- 如需创建过滤视图,请使用
AddFilterViewRequest
方法。 - 如需创建过滤视图的副本,请使用
DuplicateFilterViewRequest
方法。 - 如需修改过滤视图的属性,请使用
UpdateFilterViewRequest
方法。 - 如需删除过滤视图,请使用
DeleteFilterViewRequest
方法。
如需列出所有过滤视图,请使用 spreadsheets.get
方法并将 fields
网址参数设置为 sheets/filterViews
。以下 spreadsheets.get
代码示例展示了包含字段掩码的 Google 表格网址:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/filterViews)
过滤器表示法
以下代码示例展示了 FilterView
对象的 JSON 表示法。BasicFilter
对象是相同的,只不过它缺少 filterViewId
和 title
字段,并且无法使用命名范围。
{
"filterViewId": number,
"title": string,
"range": {
object(GridRange)
},
"namedRangeId": string,
"sortSpecs": [
{
object(SortSpec)
}
],
"criteria": {
string: {
object(FilterCriteria)
},
...
}
}
示例数据
本文档的其余部分引用以下示例销售数据表:
A | B | C | D | E | F | G | |
1 | 商品类别 | 型号 | 费用 | 数量 | 区域 | 销售人员 | 发货日期 |
2 | 摩天轮 | W-24 | 20.50 美元 | 4 | 西 | 白丝 | 2016 年 3 月 1 日 |
3 | 门 | D-01X 星 | 15.00 美元 | 2 | 南 | 阿米尔 | 2016 年 3 月 15 日 |
4 | Frame | FR-0B1 | 34.00 美元 | 8 | 东 | Hannah | 2016 年 3 月 12 日 |
5 | 面板 | P-034 | 6.00 美元 | 4 | 北 | 德温 | 2016 年 3 月 15 日 |
6 | 面板 | P-052 | 11.50 美元 | 7 | 东 | Erik | 2016 年 5 月 16 日 |
7 | 摩天轮 | W-24 | 20.50 美元 | 11 | 南 | Sheldon | 2016 年 4 月 30 日 |
8 | 引擎 | ENG-0161 | 330.00 美元 | 2 | 北 | 杰西 | 2016/7/2 |
对规范进行排序
一个过滤器可以有多个排序规范。这些规范决定了如何对数据进行排序,并按指定顺序应用。SortSpec.dimensionIndex
属性指定应对排序的列索引。
以下代码示例展示了一个排序规范:
[
{
"dimensionIndex": 3,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 6,
"sortOrder": "ASCENDING"
}
]
在应用于示例销售数据时,此规范首先按“数量”排序,如果两行数量相同,则按“发货日期”排序。
A | B | C | D | E | F | G | |
1 | 商品类别 | 型号 | 费用 | 数量 | 区域 | 销售人员 | 发货日期 |
2 | 门 | D-01X 星 | 15.00 美元 | 2 | 南 | 阿米尔 | 2016 年 3 月 15 日 |
3 | 引擎 | ENG-0161 | 330.00 美元 | 2 | 北 | 杰西 | 2016/7/2 |
4 | 摩天轮 | W-24 | 20.50 美元 | 4 | 西 | 白丝 | 2016 年 3 月 1 日 |
5 | 面板 | P-034 | 6.00 美元 | 4 | 北 | 德温 | 2016 年 3 月 15 日 |
6 | 面板 | P-052 | 11.50 美元 | 7 | 东 | Erik | 2016 年 5 月 16 日 |
7 | Frame | FR-0B1 | 34.00 美元 | 8 | 东 | Hannah | 2016 年 3 月 12 日 |
8 | 摩天轮 | W-24 | 20.50 美元 | 11 | 南 | Sheldon | 2016 年 4 月 30 日 |
过滤条件
FilterCriteria
方法可确定在基本过滤或过滤视图中显示或隐藏哪些电子表格数据。每个条件取决于特定列中的值。您将过滤条件作为映射提供,其中键是列索引,值是条件。
对于使用布尔值 condition
指定的条件,条件必须为 True
才会显示值。该条件不会替换 hiddenValues
。如果某个值列在 hiddenValues
下,则该值的所有匹配项仍处于隐藏状态。
以下代码示例展示了过滤条件映射:
{
0: {
'hiddenValues': ['Panel']
},
6: {
'condition': {
'type': 'DATE_BEFORE',
'values': {
'userEnteredValue': '4/30/2016'
}
}
}
}
应用于示例销售数据时,此条件仅显示“商品类别”不是“面板”且“发货日期”早于 2016 年 4 月 30 日的行。
A | B | C | D | E | F | G | |
1 | 商品类别 | 型号 | 费用 | 数量 | 区域 | 销售人员 | 发货日期 |
2 | 摩天轮 | W-24 | 20.50 美元 | 4 | 西 | 白丝 | 2016 年 3 月 1 日 |
3 | 门 | D-01X 星 | 15.00 美元 | 2 | 南 | 阿米尔 | 2016 年 3 月 15 日 |
4 | Frame | FR-0B1 | 34.00 美元 | 8 | 东 | Hannah | 2016 年 3 月 12 日 |
示例
以下代码示例演示了如何创建过滤视图,复制该视图,然后使用上面的示例销售数据更新复制的版本。