Bedingte Formatierung

Mit der Google Sheets API lassen sich Regeln für die bedingte Formatierung erstellen und aktualisieren in Tabellenkalkulationen. Nur bestimmte Formatierungstypen (fett, kursiv, durchgestrichen, Vorder- und Hintergrundfarbe) können durch bedingte Formatierung. Die Beispiele auf dieser Seite veranschaulichen, wie sich gängige bedingte Formatierung mithilfe der Sheets API durchführen.

Diese Beispiele werden als HTTP-Anfragen dargestellt, damit sie sprachneutral sind. Weitere Informationen Wie eine Batch-Aktualisierung in verschiedenen Sprachen mithilfe der Google API implementiert wird finden Sie unter Aktualisieren Tabellen.

In diesen Beispielen haben die Platzhalter SPREADSHEET_ID und SHEET_ID gibt an, wo Sie diese IDs angeben würden. Sie finden die Tabelle ID in der Tabellen-URL. Sie erhalten Tabellenblatt-ID mithilfe des spreadsheets.get-Methode. Die Bereiche werden in der A1-Notation angegeben. Eine Beispielbereich ist Sheet1!A1:D5.

Bedingten Farbverlauf in einer Zeile hinzufügen

Die folgenden spreadsheets.batchUpdate Das Codebeispiel für Methoden zeigt, wie die Methode AddConditionalFormatRuleRequest um neue Regeln für die bedingte Formatierung mit Farbverläufen für die Zeilen 10 und 11 einer Tabellenblatt. Die erste Regel besagt, dass Zellen in dieser Zeile ihre Hintergrundfarben haben. entsprechend ihrem Wert festgelegt. Der niedrigste Wert in der Zeile ist dunkelrot, während der höchste Wert hellgrün ist. Die Farbe der anderen Werte interpoliert wird. Die zweite Regel macht dasselbe, aber mit bestimmten numerischen Werten die Endpunkte des Farbverlaufs (und die verschiedenen Farben) bestimmen. Die Anfrage verwendet die Methode sheets.InterpolationPointType als type.

Das Anfrageprotokoll ist unten zu sehen.

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 sich der Farbverlauf in Zeile 11 ist der Maximalwert auf 256 festgelegt, alle darüber liegenden Werte haben den Maximalwert Farbe:

Schemaergebnis für Gradientenformat hinzufügen

Regeln für die bedingte Formatierung zu einer Gruppe von Bereichen hinzufügen

Die folgenden spreadsheets.batchUpdate Das Codebeispiel für Methoden zeigt, wie die Methode AddConditionalFormatRuleRequest um eine neue Regel für die bedingte Formatierung für die Spalten A und C eines Tabellenblatts festzulegen. Die Regel besagt, dass Zellen mit Werten von 10 oder weniger ihren Hintergrund haben in ein Dunkelrot geändert. Die Regel wird bei Index 0 eingefügt, Vorrang vor anderen Formatierungsregeln. Die Anfrage verwendet die Methode ConditionType als type für den BooleanRule

Das Anfrageprotokoll ist unten zu sehen.

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 die Tabelle durch die angewendete Formatierungsregel aktualisiert:

Schemaergebnis für bedingtes Format hinzufügen

Einem Bereich Regeln für die bedingte Formatierung mit Datum und Text hinzufügen

Die folgenden spreadsheets.batchUpdate Das Codebeispiel für Methoden zeigt, wie die Methode AddConditionalFormatRuleRequest um neue Regeln für die bedingte Formatierung für den Bereich A1:D5 in einem Blatt festzulegen, basierend auf Datums- und Textwerten in diesen Zellen. Wenn der Text die Zeichenfolge enthält „Kosten“ (Groß-/Kleinschreibung nicht berücksichtigend) wird der Zellentext mit der ersten Regel fett formatiert. Wenn die ein Datum vor der vergangenen Woche enthält, legt die zweite Regel das Datum kursiv dargestellt und blau eingefärbt. In der Anfrage wird der ConditionType als type für den BooleanRule

Das Anfrageprotokoll ist unten zu sehen.

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 das aktuelle Datum ist der 26.09.2016:

Schemaergebnis für bedingtes Text- und Datumsformat

Benutzerdefinierte Formelregel zu einem Bereich hinzufügen

Die folgenden spreadsheets.batchUpdate Das Codebeispiel für Methoden zeigt, wie die Methode AddConditionalFormatRuleRequest um eine neue bedingte Formatierungsregel für den Bereich B5:B8 in einem Blatt festzulegen, basierend auf einer benutzerdefinierten Formel. Die Regel berechnet das Produkt der Zelle in die Spalten A und B. Ist das Produkt größer als 120, wird der Zellentext auf fett und kursiv formatiert. In der Anfrage wird der ConditionType als type für den BooleanRule

Das Anfrageprotokoll ist unten zu sehen.

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 die Tabelle durch die angewendete Formatierungsregel aktualisiert:

Schemaergebnis für benutzerdefiniertes bedingtes Format

Regeln für die bedingte Formatierung löschen

Die folgenden spreadsheets.batchUpdate Das Codebeispiel für Methoden zeigt, wie die Methode DeleteConditionalFormatRuleRequest , um die Regel für die bedingte Formatierung mit dem Index 0 im angegebenen Tabellenblatt zu löschen von SHEET_ID

Das Anfrageprotokoll ist unten zu sehen.

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

Die folgenden spreadsheets.get-Methodencode Das Beispiel zeigt, wie der Titel, SHEET_ID und eine Liste aller Regeln für die bedingte Formatierung für jedes Tabellenblatt. Die fields-Abfrage bestimmt, welche Daten zurückgegeben werden.

Das Anfrageprotokoll ist unten zu sehen.

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)

Die Antwort besteht aus einem Spreadsheet-Ressource, die enthält ein Array von Sheet-Objekte, die jeweils eine SheetProperties und ein Array von ConditionalFormatRule. Elemente. Wenn ein bestimmtes Antwortfeld auf den Standardwert festgelegt ist, wird es ausgelassen, aus der Antwort. In der Anfrage wird der ConditionType als type für den 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

Die folgenden spreadsheets.batchUpdate Das Codebeispiel für Methoden zeigt, wie die Methode UpdateConditionalFormatRuleRequest mit mehreren Anfragen. Mit der ersten Anfrage wird ein vorhandenes bedingtes Format verschoben in einen höheren Index (von 0 auf 2, wobei ihre Priorität verringert wird). Die zweite Bei der Anfrage wird die Regel für die bedingte Formatierung bei Index 0 durch eine neue Regel ersetzt zur Formatierung von Zellen, die genau den angegebenen Text ("Gesamtkosten") im A1:D5-Bereich. Die Verschiebung der ersten Anfrage ist abgeschlossen, bevor die zweite Mit der zweiten Anfrage wird die Regel ersetzt, die sich ursprünglich im Index 1 befand. Die -Anfrage verwendet den ConditionType als type für den BooleanRule

Das Anfrageprotokoll ist unten zu sehen.

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