篩選器可讓您在查看試算表時,排序及篩選要顯示的資料。篩選器不會變更試算表中的資料值。您可以使用篩選器暫時隱藏或排序資訊。開啟篩選器後,系統不會顯示符合指定篩選條件的資料。您也可以使用篩選器檢視畫面儲存不同名稱的篩選器,並隨時在篩選器之間切換。
以下是篩選器的幾個範例用途:
- 依特定資料欄排序資料。例如,依使用者姓氏排序。
- 隱藏符合特定條件的資料。例如隱藏所有 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"
}
]
套用至示例銷售資料時,這個規格會先依「Quantity」排序,如果有 2 列的數量相同,則依「Ship Date」排序。
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 日 |
範例
以下程式碼範例說明如何建立篩選器檢視畫面、複製該檢視畫面,然後使用上述範例銷售資料更新複製的版本。