借助 Google 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 行中的最高点设置为 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 } } } } } } ] }