Mit der Google Sheets API können Sie die 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 für die bedingte 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 müssen. Sie finden
die Tabellen-ID in der
Tabellen-URL. Sie können die Tabellenblatt
ID mit der
spreadsheets.get
Methode abrufen. Die Bereiche werden mit der A1
Notation angegeben. Ein Beispielbereich ist Sheet1!A1:D5.
Bedingten Farbverlauf über eine Zeile hinzufügen
Das folgende
spreadsheets.batchUpdate
Codebeispiel für die Methode zeigt, wie Sie mit
AddConditionalFormatRuleRequest
neue Regeln für die bedingte Formatierung mit Farbverlauf für die Zeilen 10 und 11 eines
Tabellenblatts festlegen. Die erste Regel legt fest, dass die Hintergrundfarben der Zellen in dieser Zeile entsprechend ihrem Wert festgelegt werden. Der niedrigste Wert in der Zeile ist dunkelrot, der höchste Wert hellgrün. Die Farbe der anderen Werte wird interpoliert. Die zweite Regel funktioniert genauso, aber mit bestimmten numerischen Werten, die die Endpunkte des Farbverlaufs bestimmen (und mit anderen Farben). In der Anfrage wird
sheets.InterpolationPointType
als type verwendet.
Das Anfrageprotokoll ist 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 mit der angewendeten Formatierungsregel aktualisiert. Da der maximale Punkt im Farbverlauf in Zeile 11 auf 256 festgelegt ist, haben alle Werte darüber die Farbe des maximalen Punkts:

Regel für die bedingte Formatierung für eine Reihe von Bereichen hinzufügen
Das folgende
spreadsheets.batchUpdate
Codebeispiel für die Methode zeigt, wie Sie mit dem
AddConditionalFormatRuleRequest
eine neue Regel für die bedingte Formatierung für die Spalten A und C eines Tabellenblatts festlegen.
Die Regel legt fest, dass die Hintergrundfarben von Zellen mit Werten von 10 oder weniger in ein dunkles Rot geändert werden. Die Regel wird an Index 0 eingefügt und hat daher Vorrang vor anderen Formatierungsregeln. In der Anfrage wird
ConditionType
als type für die
BooleanRuleverwendet.
Das Anfrageprotokoll ist 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 mit der angewendeten Formatierungsregel aktualisiert:

Regeln für die bedingte Formatierung für Datum und Text zu einem Bereich hinzufügen
Das folgende
spreadsheets.batchUpdate
Codebeispiel für die Methode zeigt, wie Sie mit dem
AddConditionalFormatRuleRequest
neue Regeln für die bedingte Formatierung für den Bereich A1:D5 in einem Tabellenblatt festlegen,
basierend auf Datums- und Textwerten in diesen Zellen. Wenn der Text den String „Cost“ (ohne Berücksichtigung der Groß-/Kleinschreibung) enthält, wird der Zellentext mit der ersten Regel fett formatiert. Wenn die Zelle ein Datum enthält, das vor der letzten Woche liegt, wird der Zellentext mit der zweiten Regel kursiv formatiert und blau gefärbt. In der Anfrage wird
ConditionType
als type für die
BooleanRuleverwendet.
Das Anfrageprotokoll ist 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 mit der angewendeten Formatierungsregel aktualisiert. In diesem Beispiel ist das aktuelle Datum der 26.09.2016:

Benutzerdefinierte Formelregel zu einem Bereich hinzufügen
Das folgende
spreadsheets.batchUpdate
Codebeispiel für die Methode zeigt, wie Sie mit der
AddConditionalFormatRuleRequest
eine neue Regel für die bedingte Formatierung für den Bereich B5:B8 in einem Tabellenblatt festlegen,
basierend auf einer benutzerdefinierten Formel. Die Regel berechnet das Produkt der Zelle in den Spalten A und B. Wenn das Produkt größer als 120 ist, wird der Zellentext fett und kursiv formatiert. In der Anfrage wird
ConditionType
als type für die
BooleanRuleverwendet.
Das Anfrageprotokoll ist 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 mit der angewendeten Formatierungsregel aktualisiert:

Regel für die bedingte Formatierung löschen
Das folgende
spreadsheets.batchUpdate
Codebeispiel für die Methode zeigt, wie Sie mit
DeleteConditionalFormatRuleRequest
die Regel für die bedingte Formatierung mit dem Index 0 in dem durch SHEET_ID angegebenen Tabellenblatt löschen.
Das Anfrageprotokoll ist 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
spreadsheets.get
Codebeispiel für die Methode 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 ist 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.
Jedes Objekt hat ein
SheetProperties
-Element und ein Array von
ConditionalFormatRule
-Elementen. Wenn ein bestimmtes Antwortfeld auf den Standardwert festgelegt ist, wird es aus der Antwort entfernt. In der Anfrage wird
ConditionType
als type für die
BooleanRuleverwendet.
{ "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
spreadsheets.batchUpdate
Codebeispiel für die Methode zeigt, wie Sie
UpdateConditionalFormatRuleRequest
mit mehreren Anfragen verwenden. Mit der ersten Anfrage wird eine vorhandene Regel für die bedingte Formatierung an einen höheren Index verschoben (von 0 zu 2, wodurch ihre Priorität verringert wird). Mit der zweiten Anfrage wird die Regel für die bedingte Formatierung an Index 0 durch eine neue Regel ersetzt, die Zellen mit dem exakt angegebenen Text („Total Cost“) im Bereich A1:D5 formatiert. Die Verschiebung der ersten Anfrage wird abgeschlossen, bevor die zweite beginnt. Daher ersetzt die zweite Anfrage die Regel, die ursprünglich an Index 1 stand. In der
Anfrage wird
ConditionType
als type für die
BooleanRule verwendet.
Das Anfrageprotokoll ist 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 } } } } } } ] }