篩選器可讓您在查看試算表時,排序及篩選資料。篩選器不會變更試算表中的資料值,你可以使用篩選器暫時隱藏或排序資訊。篩選器啟用後,符合指定篩選條件的資料就不會顯示。您也可以使用篩選器檢視畫面儲存不同名稱的篩選器,並隨時切換。
以下是一些篩選器的範例用途:
- 依特定資料欄排序資料。例如依使用者姓氏排序。
- 隱藏符合特定條件的資料。舉例來說,隱藏所有超過 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 | 西 | Beth | 2016 年 3 月 1 日 |
3 | 門 | D-01X | $15.00 | 2 | 南 | Amir | 2016 年 3 月 15 日 |
4 | 頁框 | FR-0B1 | $34.00 | 8 | 東 | Hannah | 2016 年 3 月 12 日 |
5 | 面板 | P-034 | $6.00 | 4 | 北 | Devyn | 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 | 北 | Jessie | 2016 年 7 月 2 日 |
排序規格
篩選條件可以有多個排序規格。這些規格會決定資料的排序方式,並依指定順序套用。SortSpec.dimensionIndex
屬性會指定要套用排序的資料欄索引。
下列程式碼範例顯示排序規格:
[
{
"dimensionIndex": 3,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 6,
"sortOrder": "ASCENDING"
}
]
套用至範例銷售資料時,這項規格會先依「數量」排序,如果 2 個資料列的數量相同,則依「出貨日期」排序。
A | B | C | D | E | F | G | |
1 | 項目類別 | 型號 | 費用 | 數量 | 區域 | 銷售專員 | 出貨日期 |
2 | 門 | D-01X | $15.00 | 2 | 南 | Amir | 2016 年 3 月 15 日 |
3 | 引擎 | ENG-0161 | $330.00 | 2 | 北 | Jessie | 2016 年 7 月 2 日 |
4 | 車輪 | W-24 | $20.50 | 4 | 西 | Beth | 2016 年 3 月 1 日 |
5 | 面板 | P-034 | $6.00 | 4 | 北 | Devyn | 2016 年 3 月 15 日 |
6 | 面板 | P-052 | $11.50 | 7 | 東 | Erik | 2016 年 5 月 16 日 |
7 | 頁框 | 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 | 西 | Beth | 2016 年 3 月 1 日 |
3 | 門 | D-01X | $15.00 | 2 | 南 | Amir | 2016 年 3 月 15 日 |
4 | 頁框 | FR-0B1 | $34.00 | 8 | 東 | Hannah | 2016 年 3 月 12 日 |
範例
下列程式碼範例說明如何建立篩選器檢視畫面、複製該畫面,然後使用上述範例銷售資料更新複製的版本。