Mit der Google Sheets API können Sie Regeln für die bedingte Formatierung in Tabellen erstellen und aktualisieren. Nur bestimmte Formatierungstypen (fett, kursiv, durchgestrichen, Vordergrundfarbe und Hintergrundfarbe) können über die bedingte Formatierung gesteuert werden. Die Beispiele auf dieser Seite veranschaulichen, wie Sie gängige Vorgänge zur bedingten Formatierung mit der Sheets API ausführen.
Diese Beispiele werden als HTTP-Anfragen dargestellt, um sprachneutral zu sein. Informationen zum Implementieren eines Batch-Updates in verschiedenen Sprachen mit den Google API-Clientbibliotheken finden Sie unter Tabellen aktualisieren.
In diesen Beispielen geben die Platzhalter SPREADSHEET_ID und SHEET_ID an, wo Sie diese IDs angeben würden. Sie finden die Tabellen-ID in der Tabellen-URL. Sie können die Tabellenblatt-ID mit der Methode spreadsheets.get abrufen. Die Bereiche werden mit der A1-Notation angegeben. Ein Beispielbereich ist Tabelle1!A1:D5.
Bedingten Farbverlauf für eine Zeile hinzufügen
Das folgende Codebeispiel für die Methode spreadsheets.batchUpdate zeigt, wie Sie mit AddConditionalFormatRuleRequest neue Regeln für die bedingte Formatierung mit Farbverlauf für die Zeilen 10 und 11 eines Tabellenblatts erstellen. Die erste Regel besagt, dass die Hintergrundfarben der Zellen in dieser Zeile entsprechend ihrem Wert festgelegt werden. Der niedrigste Wert in der Zeile ist dunkelrot und der höchste Wert hellgrün. Die Farbe der anderen Werte wird interpoliert. Die zweite Regel funktioniert genauso, aber mit bestimmten numerischen Werten für die Gradientenendpunkte und mit anderen Farben. In der Anfrage wird sheets.InterpolationPointType als type verwendet.
Das Anfrageprotokoll wird unten dargestellt.
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 } }, ] }
Nach der Anfrage wird das Tabellenblatt durch die angewendete Formatierungsregel aktualisiert. Da der Maximalwert des Farbverlaufs in Zeile 11 auf 256 festgelegt ist, haben alle Werte darüber die Farbe für den Maximalwert:

Regel für die bedingte Formatierung für eine Gruppe von Bereichen hinzufügen
Das folgende Codebeispiel für die Methode spreadsheets.batchUpdate zeigt, wie Sie mit AddConditionalFormatRuleRequest eine neue Regel für die bedingte Formatierung für die Spalten A und C eines Tabellenblatts erstellen.
Gemäß der Regel wird die Hintergrundfarbe von Zellen mit Werten von 10 oder weniger in ein dunkles Rot geändert. Die Regel wird an Index 0 eingefügt und hat daher Vorrang vor anderen Formatierungsregeln. Die Anfrage verwendet ConditionType als type für BooleanRule.
Das Anfrageprotokoll wird unten dargestellt.
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 } } ] }
Nach der Anfrage wird das Tabellenblatt durch die angewendete Formatierungsregel aktualisiert:

Regeln für die bedingte Formatierung für Datum und Text zu einem Bereich hinzufügen
Das folgende Codebeispiel für die Methode spreadsheets.batchUpdate zeigt, wie Sie mit AddConditionalFormatRuleRequest neue Regeln für die bedingte Formatierung für den Bereich A1:D5 in einem Tabellenblatt erstellen, die auf Datums- und Textwerten in diesen Zellen basieren. Wenn der Text den String „Cost“ (Groß-/Kleinschreibung wird nicht berücksichtigt) enthält, wird der Zellentext durch die erste Regel fett formatiert. Wenn die Zelle ein Datum vor der letzten Woche enthält, wird der Zellentext durch die zweite Regel kursiv formatiert und blau gefärbt. Die Anfrage verwendet ConditionType als type für BooleanRule.
Das Anfrageprotokoll wird unten dargestellt.
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 } } ] }
Nach der Anfrage wird das Tabellenblatt durch die angewendete Formatierungsregel aktualisiert. In diesem Beispiel ist das aktuelle Datum der 26.09.2016:

Benutzerdefinierte Formelregel für einen Bereich hinzufügen
Das folgende Codebeispiel für die Methode spreadsheets.batchUpdate zeigt, wie Sie mit AddConditionalFormatRuleRequest eine neue Regel für die bedingte Formatierung für den Bereich B5:B8 in einem Tabellenblatt erstellen, die auf einer benutzerdefinierten Formel basiert. Mit der Regel wird das Produkt der Zelle in den Spalten A und B berechnet. Wenn das Produkt größer als 120 ist, wird der Zelltext fett und kursiv formatiert. Die Anfrage verwendet ConditionType als type für BooleanRule.
Das Anfrageprotokoll wird unten dargestellt.
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 } } ] }
Nach der Anfrage wird das Tabellenblatt durch die angewendete Formatierungsregel aktualisiert:

Regel für die bedingte Formatierung löschen
Das folgende Codebeispiel für die Methode spreadsheets.batchUpdate zeigt, wie Sie mit DeleteConditionalFormatRuleRequest die bedingte Formatierungsregel mit dem Index 0 im Tabellenblatt löschen, das durch SHEET_ID angegeben wird.
Das Anfrageprotokoll wird unten dargestellt.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
"requests": [
{
"deleteConditionalFormatRule": {
"sheetId": SHEET_ID,
"index": 0
}
}
]
}Liste der Regeln für die bedingte Formatierung lesen
Das folgende Codebeispiel für die Methode spreadsheets.get zeigt, wie Sie den Titel, SHEET_ID und die Liste aller Regeln für die bedingte Formatierung für jedes Tabellenblatt in einer Tabelle abrufen. Der Abfrageparameter fields bestimmt, welche Daten zurückgegeben werden.
Das Anfrageprotokoll wird unten dargestellt.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)
Die Antwort besteht aus einer Spreadsheet-Ressource, die ein Array von Sheet-Objekten enthält, die jeweils ein SheetProperties-Element und ein Array von ConditionalFormatRule-Elementen haben. Wenn ein bestimmtes Antwortfeld auf den Standardwert festgelegt ist, wird es aus der Antwort ausgelassen. Die Anfrage verwendet ConditionType als type für 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 } } } }, ... ] } ] }
Regel für die bedingte Formatierung oder ihre Priorität aktualisieren
Das folgende Codebeispiel für die Methode spreadsheets.batchUpdate zeigt, wie Sie UpdateConditionalFormatRuleRequest mit mehreren Anfragen verwenden. Mit der ersten Anfrage wird eine vorhandene Regel für bedingte Formatierung auf einen höheren Index verschoben (von 0 zu 2), wodurch ihre Priorität sinkt. Mit der zweiten Anfrage wird die Regel für die bedingte Formatierung am Index 0 durch eine neue Regel ersetzt, mit der Zellen mit dem genauen Text „Total Cost“ (Gesamtkosten) im Bereich A1:D5 formatiert werden. Die Verschiebung der ersten Anfrage wird abgeschlossen, bevor die zweite beginnt. Die zweite Anfrage ersetzt also die Regel, die ursprünglich am Index 1 stand. In der Anfrage wird ConditionType als type für BooleanRule verwendet.
Das Anfrageprotokoll wird unten dargestellt.
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 } } } } } } ] }