Formatowanie warunkowe

Interfejs Google Arkuszy API umożliwia tworzenie i aktualizowanie reguł formatowania warunkowego w arkuszach kalkulacyjnych. tylko niektóre typy formatowania (pogrubienie, kursywa, przekreślenie, kolor pierwszego planu i kolor tła) można kontrolować za pomocą funkcji sformatowanie. Przykłady na tej stronie pokazują, jak osiągnąć operacji formatowania warunkowego za pomocą interfejsu API Arkuszy.

Te przykłady są prezentowane jako żądania HTTP bez względu na język. Aby się uczyć Jak wdrożyć aktualizację zbiorczą w różnych językach przy użyciu interfejsu API Google? biblioteki klienta, patrz sekcja Aktualizacja arkusze kalkulacyjne.

W tych przykładach zmienne SPREADSHEET_ID i SHEET_ID wskazuje, gdzie należy je podać. Arkusz kalkulacyjny można znaleźć ID w adresie URL arkusza kalkulacyjnego. Możesz uzyskać identyfikator arkusza za pomocą funkcji spreadsheets.get. zakresy określa się w notacji A1. An przykładowy zakres to Arkusz1!A1:D5.

Dodawanie warunkowego gradientu koloru w wierszu

Poniżej spreadsheets.batchUpdate przykładowy kod metody pokazuje, jak używać metody AddConditionalFormatRuleRequest nowe reguły formatowania warunkowego gradientu dla wierszy 10 i 11 arkusza kalkulacyjnego. Pierwsza reguła określa, że komórki w tym wierszu mają kolory tła ustawiany zgodnie z ich wartością. Najniższa wartość w wierszu jest w kolorze ciemnoczerwonym, a najwyższa ma kolor jasnozielony. Kolor innych wartości. jest interpolowana. Druga reguła jest taka sama, ale z określonymi wartościami liczbowymi określania punktów końcowych gradientu (i różnych kolorów). W żądaniu użyto parametru sheets.InterpolationPointType jak type.

Protokół żądania jest widoczny poniżej.

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

Po przesłaniu żądania zastosowana reguła formatu zaktualizuje arkusz. Ponieważ gradient w wierszu 11 wartość maksymalna jest ustawiona na 256, wszystkie wartości nad nim mają wartość maxpoint kolor:

Dodaj wynik przepisu w formacie gradientu

Dodawanie reguły formatowania warunkowego do zbioru zakresów

Poniżej spreadsheets.batchUpdate przykładowy kod metody pokazuje, jak używać metody AddConditionalFormatRuleRequest aby utworzyć nową regułę formatowania warunkowego dla kolumn A i C w arkuszu. Reguła określa, że tło komórek o wartości 10 lub mniejszej zmienił kolor na ciemnoczerwony. Reguła jest wstawiona w indeksie 0, więc zabiera mają wyższy priorytet niż inne reguły formatowania. W żądaniu użyto parametru ConditionType jako type dla BooleanRule

Protokół żądania jest widoczny poniżej.

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

Po przesłaniu żądania zastosowana reguła formatu zaktualizuje arkusz:

Dodaj wynik przepisu w formacie warunkowym

Dodawanie do zakresu reguł formatowania warunkowego daty i tekstu

Poniżej spreadsheets.batchUpdate przykładowy kod metody pokazuje, jak używać metody AddConditionalFormatRuleRequest w celu utworzenia nowych reguł formatowania warunkowego dla zakresu A1:D5 w arkuszu, na podstawie daty i wartości tekstowych w tych komórkach. Jeśli tekst zawiera ciąg znaków „Koszt” (wielkość liter nie jest rozróżniana), pierwsza reguła pogrubi tekst w komórce. Jeśli komórka zawiera datę sprzed ostatniego tygodnia, druga reguła ustawia tekstu w komórce kursywą i kolorem niebieskim. W żądaniu użyto parametru ConditionType jako type dla BooleanRule

Protokół żądania jest widoczny poniżej.

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

Po przesłaniu żądania zastosowana reguła formatu zaktualizuje arkusz. W tym przykładzie aktualna data to 26.09.2016 r.:

Wynik przepisu w formacie warunkowym typu tekst i data

Dodawanie niestandardowej reguły formuły do zakresu

Poniżej spreadsheets.batchUpdate przykładowy kod metody pokazuje, jak używać metody AddConditionalFormatRuleRequest aby utworzyć nową regułę formatowania warunkowego dla zakresu B5:B8 w arkuszu, na podstawie formuły niestandardowej. Reguła oblicza iloczyn komórki w argumencie kolumny A i B. Jeśli iloczyn ma wartość większą niż 120, tekst w komórce jest ustawiony na pogrubienie i kursywę. W żądaniu użyto parametru ConditionType jako type dla BooleanRule

Protokół żądania jest widoczny poniżej.

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

Po przesłaniu żądania zastosowana reguła formatu zaktualizuje arkusz:

Wynik przepisu w niestandardowym formacie warunkowym

Usuwanie reguły formatowania warunkowego

Poniżej spreadsheets.batchUpdate przykładowy kod metody pokazuje, jak używać metody DeleteConditionalFormatRuleRequest aby usunąć regułę formatowania warunkowego z indeksem 0 w określonym arkuszu autor: SHEET_ID.

Protokół żądania jest widoczny poniżej.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteConditionalFormatRule": {
        "sheetId": SHEET_ID,
        "index": 0
      }
    }
  ]
}

Przeczytaj listę reguł formatowania warunkowego

Poniżej kod metody spreadsheets.get, przykład pokazuje, jak uzyskać tytuł, SHEET_ID i listę wszystkich z regułami formatowania warunkowego poszczególnych arkuszy w arkuszu kalkulacyjnym. Zapytanie fields określa, jakie dane zwrócić.

Protokół żądania jest widoczny poniżej.

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

Odpowiedź składa się z Spreadsheet, które zawiera tablicę Sheet obiektów, z których każdy ma w SheetProperties element i tablica ConditionalFormatRule . Jeśli dane pole odpowiedzi ma wartość domyślną, jest ono pomijane. z odpowiedzi. W żądaniu użyto parametru ConditionType jako type dla 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
              }
            }
          }
        },
        ...
      ]
    }
  ]
}

Aktualizowanie reguły formatowania warunkowego lub jej priorytetu

Poniżej spreadsheets.batchUpdate przykładowy kod metody pokazuje, jak używać metody UpdateConditionalFormatRuleRequest z wieloma prośbami. Pierwsze żądanie powoduje przeniesienie istniejącego formatu warunkowego na wyższy indeks (od 0 do 2, co zmniejsza jego priorytet). Druga żądanie zastępuje regułę formatowania warunkowego w indeksie 0 nową regułą który formatuje komórki zawierające dokładnie określony tekst („Całkowity koszt”) w zakres A1:D5. Przeniesienie pierwszego żądania kończy się przed rozpoczęciem drugiego, więc drugie żądanie zastępuje regułę, która wcześniej była w indeksie 1. korzysta z funkcji ConditionType jako type dla BooleanRule

Protokół żądania jest widoczny poniżej.

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