Interfejs Google Arkuszy API umożliwia tworzenie i aktualizowanie reguł 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 za pomocą interfejsu Arkuszy Google wykonywać typowe operacje formatowania warunkowego.
Te przykłady są prezentowane jako żądania HTTP bez względu na język. Aby dowiedzieć się, jak wdrożyć aktualizację zbiorczą w różnych językach za pomocą bibliotek klienta interfejsu API Google, przeczytaj artykuł o aktualizowaniu arkuszy kalkulacyjnych.
W tych przykładach obiekty zastępcze SPREADSHEET_ID i SHEET_ID wskazują, gdzie należy podać te identyfikatory. Ten identyfikator arkusza kalkulacyjnego znajdziesz w adresie URL arkusza kalkulacyjnego. Identyfikator arkusza możesz uzyskać za pomocą metody spreadsheets.get
. Zakresy określa się 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 używać AddConditionalFormatRuleRequest
do ustanowienia nowych reguł formatowania warunkowego gradientu w wierszach 10 i 11 arkusza. Pierwsza reguła wskazuje, że kolory tła komórek w tym wierszu są ustawione zgodnie z wartościami. Najniższa wartość w wierszu jest w kolorze ciemnoczerwonym, a najwyższa w kolorze jasnozielonym. Kolor pozostałych wartości
jest interpolowany. Druga reguła robi to samo, ale z określonymi wartościami liczbowymi, które określają punkty końcowe gradientu (i różne kolory). Żądanie używa sheets.InterpolationPointType
jako 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. Punkt maksymalny gradientu w wierszu 11 ma wartość 256
, więc wszystkie wartości nad nim mają maksymalny kolor punktu maksymalnego:
Dodawanie reguły formatowania warunkowego do zbioru zakresów
Poniższy przykładowy kod metody spreadsheets.batchUpdate
pokazuje, jak użyć AddConditionalFormatRuleRequest
do ustanowienia nowej reguły formatowania warunkowego dla kolumn A i C w arkuszu.
Reguła określa, że kolor tła komórek z wartościami nieprzekraczającymi 10 jest zmieniany 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 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:
Dodawanie do zakresu reguł formatowania warunkowego daty i tekstu
Poniższy przykładowy kod metody spreadsheets.batchUpdate
pokazuje, jak używać 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 „Koszt” (wielkość liter nie jest rozróżniana), pierwsza reguła pogrubia tekst komórki. Jeśli komórka zawiera datę sprzed ostatniego tygodnia, druga reguła ustawi kursywę i kolor niebieski. Żądanie używa 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 bieżąca data to 26.09.2016 r.:
Dodawanie niestandardowej reguły formuły do zakresu
Poniższyspreadsheets.batchUpdate
przykładowy kod metody pokazuje, jak korzystać zAddConditionalFormatRuleRequest
do ustanowienia w arkuszu nowej reguły formatowania warunkowego dla zakresu B5:B8 na podstawie formuły niestandardowej. Reguła oblicza iloczyn komórki
w kolumnach A i B. Jeśli iloczyn jest większy niż 120, tekst w komórce jest pisany pogrubieniem i kursywą. Żądanie używa 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:
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 z indeksem 0
w arkuszu określonym przez 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ższy przykładowy kod metody spreadsheets.get
pokazuje, jak uzyskać tytuł, SHEET_ID i listę wszystkich reguł formatowania warunkowego dla każdego arkusza w arkuszu kalkulacyjnym. Parametr zapytania 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 zasobu Spreadsheet
, który zawiera tablicę obiektów Sheet
, z których każdy ma element SheetProperties
i tablicę elementów ConditionalFormatRule
. Jeśli dane pole odpowiedzi ma wartość domyślną, jest ono pomijane. Żą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
, co zmniejsza jego priorytet). Drugie żądanie zastępuje regułę formatowania warunkowego w pozycji 0
nową regułą, która formatuje komórki zawierające dokładnie określony tekst („Całkowity koszt”) 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
. W żądaniu ConditionType
jest używane 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 } } } } } } ] }