Mise en forme conditionnelle

L'API Google Sheets vous permet de créer et de mettre à jour les règles de mise en forme conditionnelle dans les feuilles de calcul. Seuls certains types de mise en forme (gras, italique, barré, la couleur de premier plan et la couleur d'arrière-plan) peuvent être contrôlées via des mise en forme. Les exemples de cette page indiquent comment de mise en forme conditionnelle avec l'API Sheets.

Ces exemples sont présentés comme des requêtes HTTP afin de ne pas tenir compte du langage. Pour apprendre comment implémenter une mise à jour groupée dans différents langages à l'aide de l'API Google ; bibliothèques clientes, consultez la section Mettre à jour feuilles de calcul.

Dans ces exemples, les espaces réservés SPREADSHEET_ID et SHEET_ID indique où vous devez fournir ces identifiants. Vous pouvez accéder à la feuille de calcul ID dans l'URL de la feuille de calcul. Vous pouvez obtenir l'ID de la feuille de calcul à l'aide de l'élément spreadsheets.get. La sont spécifiées au format A1. Une exemple de plage est Feuille1!A1:D5.

Ajouter un dégradé de couleurs conditionnel sur une ligne

Les éléments suivants : spreadsheets.batchUpdate l'exemple de code de méthode montre comment utiliser AddConditionalFormatRuleRequest afin d'établir de nouvelles règles de mise en forme conditionnelle avec un dégradé pour les lignes 10 et 11 d'une feuille. La première règle stipule que les cellules de cette ligne ont leur couleur d'arrière-plan en fonction de leur valeur. La valeur la plus basse de la ligne est en rouge foncé, tandis que la valeur la plus élevée est en vert vif. La couleur des autres valeurs est interpolée. La deuxième règle fait la même chose, mais avec des valeurs numériques spécifiques déterminer les extrémités du dégradé (et les différentes couleurs). La requête utilise le paramètre sheets.InterpolationPointType comme type.

Le protocole de requête est présenté ci-dessous.

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
      }
    },
  ]
}

Une fois la requête envoyée, la règle de mise en forme appliquée met à jour la feuille. Puisque le dégradé Le point maximal de la ligne 11 est défini sur 256, toutes les valeurs supérieures à la valeur maximale couleur:

Ajouter le résultat de la recette du format de dégradé

Ajouter une règle de mise en forme conditionnelle à un ensemble de plages

Les éléments suivants : spreadsheets.batchUpdate l'exemple de code de méthode montre comment utiliser AddConditionalFormatRuleRequest pour établir une nouvelle règle de mise en forme conditionnelle pour les colonnes A et C d'une feuille. La règle stipule que les cellules avec des valeurs de 10 ou moins ont leur arrière-plan sont devenues rouge foncé. La règle est insérée à l'index 0. sur les autres règles de mise en forme. La requête utilise le paramètre ConditionType comme type pour BooleanRule

Le protocole de requête est présenté ci-dessous.

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
      }
    }
  ]
}

Une fois la requête envoyée, la règle de mise en forme appliquée met à jour la feuille:

Ajouter un résultat de recette avec mise en forme conditionnelle

Ajouter des règles de mise en forme conditionnelle de date et de texte à une plage

Les éléments suivants : spreadsheets.batchUpdate l'exemple de code de méthode montre comment utiliser AddConditionalFormatRuleRequest pour établir de nouvelles règles de mise en forme conditionnelle pour la plage A1:D5 dans une feuille, en fonction de la date et des valeurs de texte dans ces cellules. Si le texte contient la chaîne "Coût" (non sensible à la casse), la première règle met le texte de la cellule en gras. Si le contient une date antérieure à la semaine précédente, la seconde règle définit le le texte des cellules en italique et le colore en bleu. La requête utilise le paramètre ConditionType comme type pour BooleanRule

Le protocole de requête est présenté ci-dessous.

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
      }
    }
  ]
}

Une fois la requête envoyée, la règle de mise en forme appliquée met à jour la feuille. Dans cet exemple, la date actuelle est le 26/09/2016:

Résultat de la recette pour le format conditionnel de texte et de date

Ajouter une règle de formule personnalisée à une plage

Les éléments suivants : spreadsheets.batchUpdate l'exemple de code de méthode montre comment utiliser AddConditionalFormatRuleRequest pour établir une nouvelle règle de mise en forme conditionnelle pour la plage B5:B8 dans une feuille, en fonction d'une formule personnalisée. La règle calcule le produit de la cellule dans les colonnes A et B. Si le produit est supérieur à 120, le texte de la cellule est défini sur gras et italique. La requête utilise le paramètre ConditionType comme type pour BooleanRule

Le protocole de requête est présenté ci-dessous.

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
      }
    }
  ]
}

Une fois la requête envoyée, la règle de mise en forme appliquée met à jour la feuille:

Résultat de recette de mise en forme conditionnelle personnalisé

Supprimer une règle de mise en forme conditionnelle

Les éléments suivants : spreadsheets.batchUpdate l'exemple de code de méthode montre comment utiliser DeleteConditionalFormatRuleRequest pour supprimer la règle de mise en forme conditionnelle ayant l'index 0 dans la feuille spécifiée par SHEET_ID.

Le protocole de requête est présenté ci-dessous.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteConditionalFormatRule": {
        "sheetId": SHEET_ID,
        "index": 0
      }
    }
  ]
}

Lire la liste des règles de mise en forme conditionnelle

Les éléments suivants : Code de la méthode spreadsheets.get montre comment obtenir le titre, SHEET_ID et la liste de tous règles de mise en forme conditionnelle pour chaque feuille d’une feuille de calcul. Requête fields détermine les données à renvoyer.

Le protocole de requête est présenté ci-dessous.

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)

La réponse se compose d'un la ressource Spreadsheet, qui contient un tableau de Sheet objets ayant chacun un SheetProperties et un tableau de ConditionalFormatRule éléments. Si un champ de réponse donné est défini sur la valeur par défaut, il est omis. de la réponse. La requête utilise le paramètre ConditionType comme type pour 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
              }
            }
          }
        },
        ...
      ]
    }
  ]
}

Mettre à jour une règle de mise en forme conditionnelle ou sa priorité

Les éléments suivants : spreadsheets.batchUpdate l'exemple de code de méthode montre comment utiliser UpdateConditionalFormatRuleRequest avec plusieurs demandes. La première requête déplace un format conditionnel existant vers un index plus élevé (de 0 à 2, ce qui diminue sa priorité). Le deuxième la requête remplace la règle de mise en forme conditionnelle à l'index 0 par une nouvelle règle qui met en forme les cellules contenant le texte exact spécifié ("Coût total") dans le A1:D5. Le déplacement de la première demande est terminé avant le début de la seconde, donc la deuxième requête remplace la règle qui se trouvait initialement à l'index 1. La utilise le paramètre ConditionType comme type pour BooleanRule

Le protocole de requête est présenté ci-dessous.

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
              }
            }
          }
        }
      }
    }
  ]
}