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 einer Batch-Aktualisierung 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. Die Tabellen-ID finden Sie 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 ähnlich, verwendet aber bestimmte numerische Werte für die Gradientenendpunkte und andere Farben. In der Anfrage wird sheets.InterpolationPointType
als type
verwendet.
Das Anfrageprotokoll wird unten angezeigt.
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.
Die Regel besagt, dass Zellen mit Werten von 10 oder weniger eine dunkelrote Hintergrundfarbe erhalten. 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 angezeigt.
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 angezeigt.
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 Zellentext fett und kursiv formatiert. Die Anfrage verwendet ConditionType
als type
für BooleanRule
.
Das Anfrageprotokoll wird unten angezeigt.
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 angezeigt.
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 angezeigt.
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 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. Bei 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 im Bereich A1:D5 formatiert werden, die den angegebenen genauen Text („Total Cost“) enthalten. Die Verschiebung der ersten Anfrage wird abgeschlossen, bevor die zweite beginnt. Die zweite Anfrage ersetzt also die Regel, die sich ursprünglich am Index 1
befand. Die Anfrage verwendet ConditionType
als type
für BooleanRule
.
Das Anfrageprotokoll wird unten angezeigt.
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 } } } } } } ] }