L'API Google Sheets consente di creare e aggiornare le regole di formattazione condizionale nei fogli di lavoro. Solo alcuni tipi di formattazione (grassetto, corsivo, barrato, colore di primo piano e colore di sfondo) possono essere controllati tramite la formattazione condizionale. Gli esempi in questa pagina illustrano come eseguire le operazioni di formattazione condizionale comuni con l'API Fogli.
Questi esempi sono presentati come richieste HTTP per essere indipendenti dalla lingua. Per scoprire come implementare un aggiornamento batch in diverse lingue utilizzando le librerie client delle API Google, consulta Aggiornare i fogli di lavoro.
In questi esempi, i segnaposto SPREADSHEET_ID e
SHEET_ID indicano dove devi fornire questi ID. Puoi trovare
l'ID del foglio di lavoro nell'
URL del foglio di lavoro. Puoi ottenere l'ID
foglio utilizzando il
spreadsheets.get
metodo. Gli intervalli vengono specificati utilizzando la notazione A1. Un intervallo di esempio è Sheet1!A1:D5.
Aggiungere una mappa a gradiente di colore condizionale in una riga
Il seguente
spreadsheets.batchUpdate
esempio di codice del metodo mostra come utilizzare
AddConditionalFormatRuleRequest
per stabilire nuove regole di formattazione condizionale con sfumatura per le righe 10 e 11 di un
foglio. La prima regola indica che i colori di sfondo delle celle in quella riga sono impostati in base al loro valore. Il valore più basso della riga è colorato di rosso scuro, mentre il valore più alto è colorato di verde brillante. Il colore degli altri valori viene interpolato. La seconda regola fa la stessa cosa, ma con valori numerici specifici che determinano gli endpoint della sfumatura (e colori diversi). La richiesta utilizza
sheets.InterpolationPointType
come type.
Di seguito è riportato il protocollo di richiesta.
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 formato applicata aggiorna il foglio. Poiché il punto massimo della sfumatura nella riga 11 è impostato su 256, tutti i valori superiori hanno il colore del punto massimo:

Aggiungere una regola di formattazione condizionale a un insieme di intervalli
Il seguente
spreadsheets.batchUpdate
esempio di codice del metodo mostra come utilizzare
AddConditionalFormatRuleRequest
per stabilire una nuova regola di formattazione condizionale per le colonne A e C di un foglio.
La regola indica che i colori di sfondo delle celle con valori pari o inferiori a 10 vengono modificati in rosso scuro. La regola viene inserita all'indice 0, quindi ha la priorità sulle altre regole di formattazione. La richiesta utilizza
ConditionType
come type per
BooleanRule.
Di seguito è riportato il protocollo di richiesta.
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 formato applicata aggiorna il foglio:

Aggiungere regole di formattazione condizionale per date e testo a un intervallo
Il seguente
spreadsheets.batchUpdate
esempio di codice del metodo 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 in queste celle. Se il testo contiene la stringa "Costo" (senza distinzione tra maiuscole e minuscole), la prima regola imposta il testo della cella in grassetto. Se la cella contiene una data precedente alla settimana scorsa, la seconda regola imposta il testo della cella in corsivo e lo colora di blu. La richiesta utilizza
ConditionType
come type per
BooleanRule.
Di seguito è riportato il protocollo di richiesta.
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 formato applicata aggiorna il foglio. In questo esempio, la data corrente è il 26/09/2016:

Aggiungere una regola di formula personalizzata a un intervallo
Il seguente
spreadsheets.batchUpdate
esempio di codice del metodo 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 è maggiore di 120, il testo della cella viene impostato in grassetto e corsivo. La richiesta utilizza
ConditionType
come type per
BooleanRule.
Di seguito è riportato il protocollo di richiesta.
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 formato applicata aggiorna il foglio:

Eliminare una regola di formattazione condizionale
Il seguente
spreadsheets.batchUpdate
esempio di codice del metodo mostra come utilizzare
DeleteConditionalFormatRuleRequest
per eliminare la regola di formattazione condizionale con indice 0 nel foglio specificato
da SHEET_ID.
Di seguito è riportato il protocollo di richiesta.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
"requests": [
{
"deleteConditionalFormatRule": {
"sheetId": SHEET_ID,
"index": 0
}
}
]
}Leggere l'elenco delle regole di formattazione condizionale
Il seguente
spreadsheets.get
esempio di codice del metodo 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 i dati da restituire.
Di seguito è riportato il protocollo di richiesta.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)
La risposta è costituita da una
Spreadsheet risorsa,
che contiene un array di
Sheet oggetti
ognuno con un
SheetProperties
elemento e un array di
ConditionalFormatRule
elementi. 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 relativa priorità
Il seguente
spreadsheets.batchUpdate
esempio di codice del metodo mostra come utilizzare
UpdateConditionalFormatRuleRequest
con più richieste. La prima richiesta sposta una regola di formato condizionale esistente a un indice più alto (da 0 a 2, diminuendone la priorità). La seconda richiesta sostituisce la regola di formattazione condizionale all'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 sostituisce la regola che originariamente si trovava all'indice 1. La
richiesta utilizza
ConditionType
come type per la
BooleanRule.
Di seguito è riportato il protocollo di richiesta.
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 } } } } } } ] }