Interfejs API Arkuszy Google pozwala tworzyć i aktualizować reguły formatowania warunkowego w arkuszach kalkulacyjnych. Za pomocą formatowania warunkowego można kontrolować tylko niektóre typy formatowania (pogrubienie, kursywa, przekreślenie, kolor pierwszego planu i kolor tła). Przykłady na tej stronie pokazują, jak wykonywać typowe operacje formatowania warunkowego za pomocą interfejsu Sheets API.
Te przykłady są prezentowane jako żądania HTTP neutralne pod kątem języka. Aby dowiedzieć się, jak wdrożyć aktualizację zbiorczą w różnych językach przy użyciu bibliotek klienta interfejsu API Google, przeczytaj artykuł Aktualizowanie arkuszy kalkulacyjnych.
W tych przykładach obiekty zastępcze SPREADSHEET_ID i SHEET_ID wskazują, gdzie należy je umieścić. Identyfikator arkusza kalkulacyjnego znajdziesz w adresie URL arkusza kalkulacyjnego. Identyfikator arkusza możesz uzyskać, korzystając z metody spreadsheets.get
. Zakresy są określane w notacji A1. Przykładowy zakres to Arkusz1!A1:D5.
Dodawanie warunkowego gradientu koloru w wierszu
Poniższy przykładowy kod metody spreadsheets.batchUpdate
pokazuje, jak za pomocą metody AddConditionalFormatRuleRequest
ustanawiać nowe reguły formatowania warunkowego gradientu w wierszach 10 i 11 arkusza. Pierwsza reguła mówi, że kolory tła komórek w tym wierszu zależą od wartości. Najniższa wartość w wierszu ma kolor ciemnoczerwony, a najwyższa – jasnozielony. Kolor innych wartości jest interpolowany. Druga reguła działa tak samo, ale z określonymi wartościami liczbowymi określającymi punkty końcowe gradientu (i innymi kolorami). W żądaniu używany jest sheets.InterpolationPointType
jako type
.
Protokół żądania jest pokazany 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 formatowania zaktualizuje arkusz. Gradient w wierszu 11 ma wartość maksymalną równą 256
, dlatego wszystkie wartości znajdujące się nad nim mają atrybut maksymalny kolor:
Dodaj regułę formatowania warunkowego do zbioru zakresów
Poniższy przykładowy kod metody spreadsheets.batchUpdate
pokazuje, jak za pomocą metody AddConditionalFormatRuleRequest
utworzyć nową regułę formatowania warunkowego dla kolumn A i C arkusza.
Reguła mówi, że kolory tła komórek o wartości 10 lub mniejszej są zmieniane na ciemnoczerwony. Reguła jest wstawiona w indeksie 0, więc ma wyższy priorytet niż inne reguły formatowania. Żądanie używa ConditionType
jako type
dla BooleanRule
.
Protokół żądania jest pokazany 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 formatowania zaktualizuje arkusz:
Dodawanie reguł formatowania warunkowego daty i tekstu do zakresu
Poniższy przykładowy kod metody spreadsheets.batchUpdate
pokazuje, jak użyć AddConditionalFormatRuleRequest
do ustanowienia 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 ustawia pogrubienie tekstu w komórce. Jeśli komórka zawiera datę wcześniejszą niż ubiegły tydzień, druga reguła ustawia kursywę tekstu w komórce i nadaje mu kolor niebieski. Żądanie używa ConditionType
jako type
dla BooleanRule
.
Protokół żądania jest pokazany 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 formatowania zaktualizuje arkusz. W tym przykładzie jest to 26.09.2016 r.:
Dodawanie niestandardowej reguły formuły do zakresu
Poniższy przykładowy kod metody spreadsheets.batchUpdate
pokazuje, jak użyć AddConditionalFormatRuleRequest
do ustanowienia w arkuszu nowej reguły formatowania warunkowego dla zakresu B5:B8 w oparciu o formułę niestandardową. Reguła oblicza iloczyn komórki w kolumnach A i B. Jeśli produkt ma więcej niż 120 znaków, tekst komórki jest wyświetlany pogrubioną i kursywą. Żądanie używa ConditionType
jako type
dla BooleanRule
.
Protokół żądania jest pokazany 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 formatowania zaktualizuje arkusz:
Usuwanie reguły formatowania warunkowego
Poniższy przykładowy kod metody spreadsheets.batchUpdate
pokazuje, jak użyć DeleteConditionalFormatRuleRequest
do usunięcia reguły formatowania warunkowego o indeksie 0
w arkuszu określonym przez SHEET_ID.
Protokół żądania jest pokazany 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ższy przykładowy kod metody spreadsheets.get
pokazuje, jak uzyskać tytuł, SHEET_ID oraz listę wszystkich reguł formatowania warunkowego dla każdego arkusza w arkuszu kalkulacyjnym. Parametr zapytania fields
określa, jakie dane należy zwrócić.
Protokół żądania jest pokazany poniżej.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)
Odpowiedź składa się z zasobu Spreadsheet
, który zawiera tablicę obiektów Sheet
, z których każdy ma element SheetProperties
oraz tablicę elementów ConditionalFormatRule
. Jeśli dane pole odpowiedzi ma wartość domyślną, jest ono pomijane w odpowiedzi. Żądanie używa 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ższy przykładowy kod metody spreadsheets.batchUpdate
pokazuje, jak używać metody UpdateConditionalFormatRuleRequest
z wieloma żądaniami. Pierwsze żądanie przenosi istniejącą regułę formatu warunkowego do wyższego indeksu (z 0
do 2
, zmniejszając jej priorytet). Drugie żądanie zastępuje regułę formatowania warunkowego w indeksie 0
nową regułę, która formatuje komórki zawierające dokładnie taki tekst („koszt całkowity”) w zakresie A1:D5. Przenoszenie pierwszego żądania kończy się przed rozpoczęciem drugiego, więc drugie żądanie zastępuje regułę, która pierwotnie znajdowała się w indeksie 1
. Żądanie używa ConditionType
jako type
obiektu BooleanRule
.
Protokół żądania jest pokazany 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 } } } } } } ] }