Google Sheets API 可讓您建立及更新條件式格式設定規則 。僅限特定格式類型 (粗體、斜體、刪除線、 前景顏色和背景顏色) 可透過條件式控制 。本頁的範例說明如何達成共同目標 使用 Sheets API 進行條件式格式設定作業。
這些範例會顯示為中立語言的 HTTP 要求。學習 如何使用 Google API 實作不同語言版本的批次更新 用戶端程式庫,請參閱更新 試算表。
在這些範例中,預留位置 SPREADSHEET_ID 和 SHEET_ID
代表這些 ID 的提供位置。您可以找到這份試算表
ID。您可以
工作表 ID
spreadsheets.get
方法。
範圍是使用 A1 標記法來指定。一個
範例範圍是 Sheet1!A1:D5
在同一列新增條件式色彩漸層
下列
spreadsheets.batchUpdate
敬上
方法程式碼範例,示範
AddConditionalFormatRuleRequest
為第 10 列和第 11 列建立新的梯度條件式格式設定規則
工作表。第一項規則指出該列中的儲存格採用背景顏色
根據其價值調整設定列中最低的值為深紅色
最高值則呈現淺綠色。其他值的顏色
內插類型。第二條規則相同,但具有特定數值
決定漸層端點 (和不同顏色)此請求會使用
sheets.InterpolationPointType
敬上
做為 type
。
要求通訊協定如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 9, "endRowIndex": 10, } ], "gradientRule": { "minpoint": { "color": { "green": 0.2, "red": 0.8 }, "type": "MIN" }, "maxpoint": { "color": { "green": 0.9 }, "type": "MAX" }, } }, "index": 0 } }, { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 10, "endRowIndex": 11, } ], "gradientRule": { "minpoint": { "color": { "green": 0.8, "red": 0.8 }, "type": "NUMBER", "value": "0" }, "maxpoint": { "color": { "blue": 0.9, "green": 0.5, "red": 0.5 }, "type": "NUMBER", "value": "256" }, } }, "index": 1 } }, ] }
並要求套用格式規則後,工作表就會更新。由於漸層效果
第 11 列的 maxpoint 已設定為 256
,超過該值的所有值都設有最大值
顏色:
為一組範圍新增條件式格式設定規則
下列
spreadsheets.batchUpdate
敬上
方法程式碼範例,示範
AddConditionalFormatRuleRequest
,為工作表 A 和 C 欄建立新的條件式格式設定規則。
這項規則指出,如果儲存格的值為 10 以下,其背景即為
顏色已變更為深紅色。規則在索引 0 插入,因此
優先順序高於其他格式設定規則此請求會使用
ConditionType
敬上
作為 type
的
BooleanRule
。
要求通訊協定如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startColumnIndex": 0, "endColumnIndex": 1, }, { "sheetId": SHEET_ID, "startColumnIndex": 2, "endColumnIndex": 3, }, ], "booleanRule": { "condition": { "type": "NUMBER_LESS_THAN_EQ", "values": [ { "userEnteredValue": "10" } ] }, "format": { "backgroundColor": { "green": 0.2, "red": 0.8, } } } }, "index": 0 } } ] }
要求後,套用的格式規則會更新工作表:
為特定範圍新增日期和文字條件式格式設定規則
下列
spreadsheets.batchUpdate
敬上
方法程式碼範例,示範
AddConditionalFormatRuleRequest
在工作表中為 A1:D5 範圍建立新的條件式格式設定規則
根據這些儲存格中的日期和文字值進行調整如果文字包含字串
「費用」(不區分大小寫),第一項規則會將儲存格文字設為粗體。如果
儲存格所含的日期早於上週,第二項規則會設定
將儲存格文字設為斜體,並將文字顏色設為藍色。此請求會使用
ConditionType
敬上
作為 type
的
BooleanRule
。
要求通訊協定如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4, } ], "booleanRule": { "condition": { "type": "TEXT_CONTAINS", "values": [ { "userEnteredValue": "Cost" } ] }, "format": { "textFormat": { "bold": true } } } }, "index": 0 } }, { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4, } ], "booleanRule": { "condition": { "type": "DATE_BEFORE", "values": [ { "relativeDate": "PAST_WEEK" } ] }, "format": { "textFormat": { "italic": true, "foregroundColor": { "blue": 1 } } } } }, "index": 1 } } ] }
並要求套用格式規則後,工作表就會更新。在這個例子中 目前日期為 2016 年 9 月 26 日:
將自訂公式欄新增至範圍
下列
spreadsheets.batchUpdate
敬上
方法程式碼範例,示範
AddConditionalFormatRuleRequest
也就是在工作表中為 B5:B8 範圍建立新的條件式格式設定規則
偵測結果這個規則會計算
A 欄和 B 欄。如果產品大於 120,儲存格文字會設為
粗體和斜體此請求會使用
ConditionType
敬上
作為 type
的
BooleanRule
。
要求通訊協定如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startColumnIndex": 2, "endColumnIndex": 3, "startRowIndex": 4, "endRowIndex": 8 } ], "booleanRule": { "condition": { "type": "CUSTOM_FORMULA", "values": [ { "userEnteredValue": "=GT(A5*B5,120)" } ] }, "format": { "textFormat": { "bold": true, "italic": true } } } }, "index": 0 } } ] }
要求後,套用的格式規則會更新工作表:
刪除條件式格式設定規則
下列
spreadsheets.batchUpdate
敬上
方法程式碼範例,可解釋如何使用
DeleteConditionalFormatRuleRequest
即可在指定的工作表中刪除含有索引 0
的條件式格式設定規則
藝人:SHEET_ID。
要求通訊協定如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0 } } ] }
閱讀條件式格式設定規則清單
下列
spreadsheets.get
方法程式碼
範例顯示如何取得標題、SHEET_ID 和完整清單
試算表中的每個工作表的條件式格式設定規則。fields
查詢
參數會決定要傳回的資料。
要求通訊協定如下所示。
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)
回應由
Spreadsheet
資源,
包含一個「
Sheet
物件
換
SheetProperties
元素和
ConditionalFormatRule
元素。如果將特定回應欄位設為預設值,就會略過該欄位
特定資料。此請求會使用
ConditionType
敬上
作為 type
的
BooleanRule
。
{ "sheets": [ { "properties": { "sheetId": 0, "title": "Sheet1" }, "conditionalFormats": [ { "ranges": [ { "startRowIndex": 4, "endRowIndex": 8, "startColumnIndex": 2, "endColumnIndex": 3 } ], "booleanRule": { "condition": { "type": "CUSTOM_FORMULA", "values": [ { "userEnteredValue": "=GT(A5*B5,120)" } ] }, "format": { "textFormat": { "bold": true, "italic": true } } } }, { "ranges": [ { "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4 } ], "booleanRule": { "condition": { "type": "DATE_BEFORE", "values": [ { "relativeDate": "PAST_WEEK" } ] }, "format": { "textFormat": { "foregroundColor": { "blue": 1 }, "italic": true } } } }, ... ] } ] }
更新條件式格式設定規則或優先順序
下列
spreadsheets.batchUpdate
敬上
方法程式碼範例,示範
UpdateConditionalFormatRuleRequest
能用於多個請求第一個要求會移動現有的條件式格式
規則至較高的索引 (從 0
變更為 2
,降低其優先順序)。第二個
要求會用新規則取代索引 0
的條件式格式設定規則
設定儲存格格式,含有指定特定文字 (「總費用」) 的
A1:D5 的範圍。系統會在第二次要求開始前完成第一個要求的移動
第二個要求會取代原本位於索引 1
的規則。
要求會使用
ConditionType
敬上
作為 type
的
BooleanRule
。
要求通訊協定如下所示。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0, "newIndex": 2 }, "updateConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0, "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4, } ], "booleanRule": { "condition": { "type": "TEXT_EQ", "values": [ { "userEnteredValue": "Total Cost" } ] }, "format": { "textFormat": { "bold": true } } } } } } ] }