Mise en forme de base

L'API Google Sheets vous permet de mettre à jour la mise en forme des cellules et des plages dans les feuilles de calcul. Les exemples de cette page montrent comment réaliser certaines opérations de mise en forme courantes avec l'API Sheets. Vous trouverez d'autres exemples de mise en forme conditionnelle sur la page de la recette Mise en forme conditionnelle.

Lors de la mise à jour d'une feuille de calcul, certains types de requêtes peuvent renvoyer des réponses. Elles sont renvoyées dans un tableau, chaque réponse occupant le même index que la requête correspondante. Certaines requêtes n'ont pas de réponse et pour celles-ci, la réponse est vide. La structure de réponse pour ces exemples est disponible sous spreadsheets.batchUpdate.

Ces exemples sont présentés sous la forme de requêtes HTTP afin de ne pas tenir compte du langage. Pour découvrir 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.

Dans la vidéo ci-dessus, vous allez apprendre à mettre en forme les cellules d'une feuille de calcul de différentes manières, y compris en créant des lignes figées, en mettant des cellules en gras, en appliquant la mise en forme de devise, en effectuant la validation des cellules et en limitant les valeurs des cellules.

Modifier les bordures des cellules

L'exemple de code spreadsheets.batchUpdate suivant montre comment utiliser UpdateBordersRequest pour attribuer à chaque cellule de la plage A1:F10 une bordure bleue en pointillés supérieure et inférieure. Le champ innerHorizontal crée des bordures horizontales à l'intérieur de la plage. Si vous omettez ce champ, des bordures ne seront ajoutées qu'en haut et en bas de toute la plage.

Tableau 3 par 3, chaque cellule présente une bordure bleue en pointillée supérieure et inférieure.
Figure 1 : Mettez en forme chaque cellule avec une bordure bleue en pointillée supérieure et inférieure dans une feuille.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateBorders": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 6
        },
        "top": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "bottom": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "innerHorizontal": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
      }
    }
  ]
}

Mettre en forme une ligne d'en-tête

L'exemple de code spreadsheets.batchUpdate suivant montre comment utiliser RepeatCellRequest pour mettre en forme une ligne d'en-tête dans une feuille. La première requête met à jour la couleur du texte, la couleur de l'arrière-plan, la taille de police du texte et la justification du texte, puis met le texte en gras. Si vous omettez les index de colonne dans le champ range, la ligne entière sera mise en forme. La deuxième requête ajuste les propriétés de la feuille de sorte que la ligne d'en-tête soit figée.

Tableau 3 par 3 avec une ligne d'en-tête mise en forme dans une feuille.
Figure 2 : Mettez en forme la ligne d'en-tête d'une feuille.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 1
        },
        "cell": {
          "userEnteredFormat": {
            "backgroundColor": {
              "red": 0.0,
              "green": 0.0,
              "blue": 0.0
            },
            "horizontalAlignment" : "CENTER",
            "textFormat": {
              "foregroundColor": {
                "red": 1.0,
                "green": 1.0,
                "blue": 1.0
              },
              "fontSize": 12,
              "bold": true
            }
          }
        },
        "fields": "userEnteredFormat(backgroundColor,textFormat,horizontalAlignment)"
      }
    },
    {
      "updateSheetProperties": {
        "properties": {
          "sheetId": SHEET_ID,
          "gridProperties": {
            "frozenRowCount": 1
          }
        },
        "fields": "gridProperties.frozenRowCount"
      }
    }
  ]
}

Fusionner les cellules

L'exemple de code spreadsheets.batchUpdate suivant montre comment fusionner des cellules à l'aide de MergeCellsRequest. La première requête fusionne la plage A1:B2 en une seule cellule. La seconde requête fusionne les colonnes dans A3:B6, tout en laissant les lignes séparées.

Tableau 3 par 3 avec des cellules fusionnées dans une feuille.
Figure 3 : Fusionnez les cellules d'une feuille.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 2,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_ALL"
      }
    },
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 2,
          "endRowIndex": 6,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_COLUMNS"
      }
    },
  ]
}

Définir un format de date et d'heure personnalisé ou décimal pour une plage

L'exemple de code spreadsheets.batchUpdate suivant montre comment utiliser RepeatCellRequest pour mettre à jour les cellules avec des formats de date et d'heure personnalisés et des formats numériques. La première requête attribue aux cellules de la plage A1:A10 le format de date et d'heure personnalisé hh:mm:ss am/pm, ddd mmm dd yyyy. Voici un exemple de date et d'heure au format suivant: "02:05:07 PM, Dim avril 03 2016".

La deuxième requête attribue aux cellules de B1:B10 le format de nombre personnalisé #,##0.0000, ce qui indique que les nombres doivent être regroupés avec des séparateurs de virgules, qu'il doit y avoir 4 chiffres après la décimale et que tous les nombres sauf un zéro au début doivent être supprimés. Par exemple, le nombre "3.14" s'affiche sous la forme "3.1400", tandis que "12345.12345" s'affiche sous la forme "12,345.1235".

Tableau 3 par 3 avec des formats de date et d'heure personnalisés et des formats numériques dans une feuille.
Figure 4. Mettez à jour les cellules de votre feuille afin qu'elles comportent des formats de date et d'heure personnalisés et des formats numériques.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 1
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "DATE",
              "pattern": "hh:mm:ss am/pm, ddd mmm dd yyyy"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    },
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 1,
          "endColumnIndex": 2
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "NUMBER",
              "pattern": "#,##0.0000"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    }
  ]
}