條件式格式設定

Google Sheets API 可讓您建立及更新條件式格式設定規則 。僅限特定格式類型 (粗體、斜體、刪除線、 前景顏色和背景顏色) 可透過條件式控制 。本頁的範例說明如何達成共同目標 使用 Sheets API 進行條件式格式設定作業。

這些範例會顯示為中立語言的 HTTP 要求。學習 如何使用 Google API 實作不同語言版本的批次更新 用戶端程式庫,請參閱更新 試算表

在這些範例中,預留位置 SPREADSHEET_IDSHEET_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敬上 作為 typeBooleanRule

要求通訊協定如下所示。

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敬上 作為 typeBooleanRule

要求通訊協定如下所示。

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敬上 作為 typeBooleanRule

要求通訊協定如下所示。

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敬上 作為 typeBooleanRule

{
  "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敬上 作為 typeBooleanRule

要求通訊協定如下所示。

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
              }
            }
          }
        }
      }
    }
  ]
}