Formattazione condizionale

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 controllate attraverso formattazione. Gli esempi in questa pagina illustrano come ottenere operazioni di formattazione condizionale con l'API Fogli.

Questi esempi vengono presentati come richieste HTTP per essere indipendenti dal linguaggio. Per ulteriori informazioni come implementare un aggiornamento batch in lingue diverse utilizzando l'API di Google librerie client, consulta l'articolo Aggiornamento delle fogli di lavoro.

In questi esempi, i segnaposto SPREADSHEET_ID e SHEET_ID indica dove fornire questi ID. Puoi trovare il foglio di lavoro ID nell'URL del foglio di lavoro. Puoi ottenere l'ID foglio utilizzando la proprietà spreadsheets.get. La vengono specificati utilizzando la notazione A1. Un di esempio è Foglio1!A1:D5.

Aggiungere un gradiente di colore condizionale in una riga

Le seguenti spreadsheets.batchUpdate l'esempio di codice del metodo mostra come utilizzare AddConditionalFormatRuleRequest per stabilire nuove regole di formattazione condizionale del gradiente per le righe 10 e 11 di un in un foglio di calcolo. La prima regola indica che le celle in quella riga hanno i loro 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 brillante. Il colore degli altri valori. viene interpolata. La seconda regola funziona nello stesso modo, ma con valori numerici specifici determinare gli endpoint dei gradienti (e i diversi colori). 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 gradiente nella riga 11 il punto massimo è impostato su 256 e tutti i valori al di sopra hanno il punto massimo colore:

Aggiungi il risultato della formula per il formato gradiente

Aggiungere una regola di formattazione condizionale a un insieme di intervalli

Le seguenti spreadsheets.batchUpdate l'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 afferma che le celle con valori pari o inferiori a 10 hanno lo sfondo colori diventati rosso scuro. La regola viene inserita nell'indice 0, pertanto richiede la priorità rispetto alle 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 il risultato della formula con formato condizionale

Aggiungi regole di formattazione condizionale per data e testo a un intervallo

Le seguenti spreadsheets.batchUpdate l'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 alle date e ai valori di testo presenti nelle 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 contiene una data antecedente alla settimana precedente, la seconda regola imposta il testo della cella in corsivo e lo colora di 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:

Risultato della formula con formato condizionale di testo e data

Aggiungi una regola formula personalizzata a un intervallo

Le seguenti spreadsheets.batchUpdate l'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 in colonne A e B. Se il prodotto è maggiore di 120, il testo della cella è impostato su 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:

Risultato della formula con formato condizionale personalizzato

Eliminare una regola di formattazione condizionale

Le seguenti spreadsheets.batchUpdate l'esempio di codice del metodo mostra come utilizzare DeleteConditionalFormatRuleRequest per eliminare la regola di formattazione condizionale con indice 0 nel foglio specificato entro il giorno 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

Le seguenti Codice del metodo spreadsheets.get esempio mostra come ottenere il titolo, SHEET_ID e l'elenco di tutte regole di formattazione condizionale per ciascun foglio di un foglio di lavoro. La query fields determina i dati da 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 un Spreadsheet, che contiene un array di Sheet oggetti, ciascuno con un SheetProperties e un array di dati 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 sua priorità

Le seguenti spreadsheets.batchUpdate l'esempio di codice del metodo mostra come utilizzare UpdateConditionalFormatRuleRequest con più richieste. La prima richiesta sposta un formato condizionale esistente a un indice più alto (da 0 a 2, diminuendo la sua priorità). Il secondo sostituisce la regola di formattazione condizionale nell'indice 0 con una nuova regola che formatta le celle contenenti il testo esatto specificato ("Costo totale") nei Intervallo A1:D5. Lo spostamento della prima richiesta viene completato prima dell'inizio della seconda, quindi la seconda richiesta sostituisce la regola originariamente presente nell'indice 1. La utilizza il parametro 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
              }
            }
          }
        }
      }
    }
  ]
}