本文說明如何使用篩選器排序及篩選試算表中顯示的資料。
篩選器可讓您在查看試算表時,排序及篩選資料。篩選器不會變更試算表中的資料值,你可以使用篩選器暫時隱藏或排序資訊。篩選器啟用後,系統不會顯示符合指定篩選條件的資料。您也可以使用篩選器檢視畫面儲存不同名稱的篩選器,並隨時切換。
如要篩選 Google Sheets API 要求傳回的資料,請使用 DataFilter 物件。詳情請參閱「讀取、寫入及搜尋中繼資料」。
篩選用途
以下是一些篩選器的範例用途:
- 依特定資料欄排序資料。舉例來說,依使用者記錄的姓氏排序。
- 隱藏符合特定條件的資料。舉例來說,隱藏所有超過兩年的記錄。
- 隱藏符合特定值的資料。舉例來說,隱藏所有狀態為「已結案」的問題。
基本篩選器
試算表的
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
篩選器檢視畫面
A
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
篩選條件的 JSON 表示法
下列程式碼範例顯示 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"
}
]
套用至銷售資料樣本時,這項規格會先依「數量」欄排序,如果兩列的數量相同,則依「出貨日期」排序。
| 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 日 |
篩選檢視畫面程式碼範例
下列程式碼範例說明如何建立篩選器檢視畫面、複製該檢視畫面,然後使用範例銷售資料更新複製的版本。