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é, couleur de premier plan et couleur d'arrière-plan) peuvent être contrôlés via la mise en forme conditionnelle. Les exemples de cette page montrent comment effectuer des opérations de mise en forme conditionnelle courantes avec l'API Sheets.
Ces exemples sont présentés comme des requêtes HTTP afin de ne pas tenir compte du langage. Pour savoir comment implémenter une mise à jour par lot dans différents langages à l'aide des bibliothèques clientes des API Google, consultez Mettre à jour des feuilles de calcul.
Dans ces exemples, les espaces réservés SPREADSHEET_ID et SHEET_ID indiquent où vous devez fournir ces ID. L'ID de la feuille de calcul se trouve dans l'URL de la feuille de calcul. Vous pouvez obtenir l'ID de la feuille à l'aide de la méthode spreadsheets.get
. Les plages sont spécifiées au format A1. Exemple de plage : Sheet1!A1:D5.
Ajouter un dégradé de couleurs conditionnel sur une ligne
L'exemple de code de la méthode spreadsheets.batchUpdate
suivant montre comment utiliser AddConditionalFormatRuleRequest
pour établir de nouvelles règles de mise en forme conditionnelle de dégradé pour les lignes 10 et 11 d'une feuille de calcul. La première règle indique que la couleur d'arrière-plan des cellules de cette ligne est définie 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 qui déterminent les extrémités du dégradé (et des couleurs différentes). La requête utilise 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. Comme le point maximal du dégradé de la ligne 11 est défini sur 256
, toutes les valeurs supérieures ont la couleur du point maximal:
Ajouter une règle de mise en forme conditionnelle à un ensemble de plages
L'exemple de code de méthode spreadsheets.batchUpdate
suivant montre comment utiliser AddConditionalFormatRuleRequest
pour établir une nouvelle règle de mise en forme conditionnelle pour les colonnes A et C d'une feuille de calcul.
La règle stipule que la couleur d'arrière-plan des cellules dont les valeurs sont inférieures ou égales à 10 est remplacée par un rouge foncé. La règle est insérée à l'index 0. Elle est donc prioritaire sur les autres règles de mise en forme. La requête utilise 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 des règles de mise en forme conditionnelle de date et de texte à une plage
L'exemple de code de méthode spreadsheets.batchUpdate
suivant montre comment utiliser AddConditionalFormatRuleRequest
pour établir de nouvelles règles de mise en forme conditionnelle pour la plage A1:D5 d'une feuille, en fonction des valeurs de date et de texte de ces cellules. Si le texte contient la chaîne "Cost" (non sensible à la casse), la première règle met le texte de la cellule en gras. Si la cellule contient une date antérieure à la semaine précédente, la deuxième règle met le texte de la cellule en italique et le colore en bleu. La requête utilise 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:
Ajouter une règle de formule personnalisée à une plage
L'exemple de code de méthode spreadsheets.batchUpdate
suivant montre comment utiliser AddConditionalFormatRuleRequest
afin d'établir une nouvelle règle de mise en forme conditionnelle pour la plage B5:B8 d'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 la valeur du produit est supérieure à 120, le texte de la cellule est mis en gras et en italique. La requête utilise 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:
Supprimer une règle de mise en forme conditionnelle
L'exemple de code de méthode spreadsheets.batchUpdate
suivant montre comment utiliser DeleteConditionalFormatRuleRequest
pour supprimer la règle de mise en forme conditionnelle avec 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
L'exemple de code de la méthode spreadsheets.get
suivant montre comment obtenir le titre, le SHEET_ID et la liste de toutes les règles de mise en forme conditionnelle pour chaque feuille d'une feuille de calcul. Le paramètre de 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'une ressource Spreadsheet
, qui contient un tableau d'objets Sheet
comportant chacun un élément SheetProperties
et un tableau d'éléments ConditionalFormatRule
. 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 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é
L'exemple de code de méthode spreadsheets.batchUpdate
suivant montre comment utiliser UpdateConditionalFormatRuleRequest
avec plusieurs requêtes. La première requête déplace une règle de mise en forme conditionnelle existante vers un index supérieur (de 0
à 2
, ce qui diminue sa priorité). La deuxième 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 la plage A1:D5. Le déplacement de la première requête est terminé avant le début de la seconde. La deuxième requête remplace donc la règle initialement associée à l'index 1
. La requête utilise 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 } } } } } } ] }