L'API Fogli Google consente di creare e aggiornare le regole di formattazione condizionale nei fogli di lavoro. Solo alcuni tipi di formattazione (grassetto, corsivo, barrato, colore in primo piano e colore di sfondo) possono essere controllati tramite la formattazione condizionale. Gli esempi in questa pagina illustrano come eseguire operazioni comuni di formattazione condizionale con l'API Fogli.
Questi esempi vengono presentati come richieste HTTP per essere indipendenti dal linguaggio. Per scoprire come implementare un aggiornamento batch in lingue diverse utilizzando le librerie client dell'API di Google, consulta la sezione Aggiornamento dei fogli di lavoro.
In questi esempi, i segnaposto SPREADSHEET_ID e SHEET_ID
indicano dove fornire questi ID. Puoi trovare l'ID del foglio di lavoro nell'URL del foglio di lavoro. Puoi ottenere
l'ID del foglio utilizzando il
metodo spreadsheets.get
. Gli
intervalli vengono specificati utilizzando la notazione A1. Un intervallo di esempio è Foglio1!A1:D5.
Aggiungere un gradiente di colore condizionale in una riga
Il seguente esempio di codice del metodo spreadsheets.batchUpdate
mostra come utilizzare AddConditionalFormatRuleRequest
per stabilire nuove regole di formattazione condizionale del gradiente per le righe 10 e 11 di un foglio. La prima regola indica che le celle di quella riga hanno i colori di sfondo impostati in base al loro valore. Il valore più basso nella riga è di colore rosso scuro,
mentre il valore più alto è di colore verde chiaro. Il colore degli altri valori
viene interpolato. La seconda regola funziona nello stesso modo, ma con valori numerici specifici che determinano gli endpoint del gradiente (e colori diversi). La richiesta utilizza sheets.InterpolationPointType
come type
.
Il protocollo di richiesta è mostrato di seguito.
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 } }, ] }
Dopo la richiesta, la regola di formattazione applicata aggiorna il foglio. Poiché il punto massimo del gradiente nella riga 11 è impostato su 256
, tutti i valori al di sopra hanno il colore del punto massimo:
Aggiungere una regola di formattazione condizionale a un insieme di intervalli
Il seguente esempio di codice del metodo spreadsheets.batchUpdate
mostra come utilizzare AddConditionalFormatRuleRequest
per stabilire una nuova regola di formattazione condizionale per le colonne A e C di un foglio.
La regola afferma che il colore di sfondo delle celle con valori pari o inferiori a 10 viene cambiato in un rosso scuro. La regola viene inserita nell'indice 0, quindi ha
la priorità sulle altre regole di formattazione. La richiesta utilizza ConditionType
come type
per BooleanRule
.
Il protocollo di richiesta è mostrato di seguito.
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 } } ] }
Dopo la richiesta, la regola di formattazione applicata aggiorna il foglio:
Aggiungi regole di formattazione condizionale per data e testo a un intervallo
Il seguente esempio di codice del metodo spreadsheets.batchUpdate
mostra come utilizzare AddConditionalFormatRuleRequest
per stabilire nuove regole di formattazione condizionale per l'intervallo A1:D5 in un foglio, in base ai valori di data e testo nelle celle. Se il testo contiene la stringa "Cost" (senza distinzione tra maiuscole e minuscole), la prima regola imposta il testo della cella in grassetto. Se la cella contiene una data antecedente alla settimana precedente, la seconda regola imposta il testo della cella in corsivo e lo colora in blu. La richiesta utilizza ConditionType
come type
per BooleanRule
.
Il protocollo di richiesta è mostrato di seguito.
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 } } ] }
Dopo la richiesta, la regola di formattazione applicata aggiorna il foglio. In questo esempio, la data corrente è il 26/09/2016:
Aggiungi una regola formula personalizzata a un intervallo
Il seguente esempio di codice del metodo spreadsheets.batchUpdate
mostra come utilizzare AddConditionalFormatRuleRequest
per stabilire una nuova regola di formattazione condizionale per l'intervallo B5:B8 in un foglio, in base a una formula personalizzata. La regola calcola il prodotto della cella nelle
colonne A e B. Se il prodotto è superiore a 120, il testo della cella è impostato in grassetto e corsivo. La richiesta utilizza ConditionType
come type
per BooleanRule
.
Il protocollo di richiesta è mostrato di seguito.
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 } } ] }
Dopo la richiesta, la regola di formattazione applicata aggiorna il foglio:
Eliminare una regola di formattazione condizionale
Il seguente esempio di codice del metodo spreadsheets.batchUpdate
mostra come utilizzare DeleteConditionalFormatRuleRequest
per eliminare la regola di formattazione condizionale con indice 0
nel foglio specificato da SHEET_ID.
Il protocollo di richiesta è mostrato di seguito.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0 } } ] }
Leggi l'elenco delle regole di formattazione condizionale
Il seguente esempio di codice del metodo spreadsheets.get
mostra come ottenere il titolo, SHEET_ID e l'elenco di tutte le regole di formattazione condizionale per ogni foglio di un foglio di lavoro. Il parametro di query fields
determina quali dati restituire.
Il protocollo di richiesta è mostrato di seguito.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)
La risposta è composta da una risorsa Spreadsheet
, che contiene un array di oggetti Sheet
, ciascuno con un elemento SheetProperties
e un array di elementi ConditionalFormatRule
. Se un determinato campo di risposta è impostato sul valore predefinito, viene omesso
dalla risposta. La richiesta utilizza ConditionType
come type
per 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 } } } }, ... ] } ] }
Aggiornare una regola di formattazione condizionale o la sua priorità
Il seguente esempio di codice del metodo spreadsheets.batchUpdate
mostra come utilizzare UpdateConditionalFormatRuleRequest
con più richieste. La prima richiesta sposta una regola di formattazione condizionale esistente
in un indice più elevato (da 0
a 2
, diminuendo la sua priorità). La seconda
richiesta sostituisce la regola di formattazione condizionale nell'indice 0
con una nuova regola
che formatta le celle contenenti il testo esatto specificato ("Costo totale") nell'intervallo
A1:D5. Lo spostamento della prima richiesta viene completato prima dell'inizio della seconda, quindi la seconda richiesta sostituirà la regola originariamente presente nell'indice 1
. La richiesta utilizza ConditionType
come type
per BooleanRule
.
Il protocollo di richiesta è mostrato di seguito.
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 } } } } } } ] }