Mise en forme de base

L'API Google Sheets vous permet de modifier la mise en forme des cellules et des plages dans les feuilles de calcul. Les exemples de cette page illustrent comment effectuer 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.

Lorsque vous mettez à jour 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 indice 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 de ces exemples se trouve sous spreadsheets.batchUpdate.

Ces exemples sont présentés sous la forme de requêtes HTTP pour être neutres en termes de langue. Pour découvrir comment implémenter une mise à jour par lot dans différentes langues à l'aide des bibliothèques clientes de l'API Google, consultez Modifier des feuilles de calcul.

Dans ces exemples, les espaces réservés SPREADSHEET_ID et SHEET_ID indiquent où vous devez fournir ces ID. Vous trouverez l'identifiant de la feuille de calcul 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 à l'aide de la notation A1. Par exemple, Feuille1!A1:D5.

Dans la vidéo ci-dessus, vous découvrez comment mettre en forme les cellules d'une feuille de calcul de différentes manières, par exemple: créer des lignes figées, mettre en gras des cellules, appliquer une mise en forme en devise, effectuer une validation de cellule et limiter les valeurs des cellules.

Modifier les bordures des cellules

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

Tableau 3 x 3 avec une bordure supérieure et inférieure bleue en pointillés autour de chaque cellule.
Figure 1. Formatez chaque cellule d'une feuille avec une bordure supérieure et inférieure bleue en pointillés.

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 d'arrière-plan, la taille de la police et la justification du texte, et met le texte en gras. Si vous omettez les indices de colonne dans le champ range, l'ensemble de la ligne est mis en forme. La deuxième requête ajuste les propriétés de la feuille afin que la ligne d'en-tête soit figée.

Tableau 3 x 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 utiliser MergeCellsRequest pour fusionner des cellules. La première requête fusionne la plage A1:B2 en une seule cellule. La deuxième requête fusionne les colonnes de A3:B6, tout en laissant les lignes séparées.

Tableau 3 x 3 avec des cellules fusionnées dans une feuille.
Figure 3. Fusionnez des cellules dans 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 ou décimal personnalisé pour une plage

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

La deuxième requête attribue aux cellules B1:B10 le format de nombre personnalisé #,##0.0000, qui indique que les nombres doivent être regroupés avec des séparateurs de virgule, qu'il doit y avoir quatre chiffres après la virgule et que tous les zéros à gauche, sauf un, doivent être supprimés. Par exemple, le nombre "3,14" est affiché sous la forme "3,1400", tandis que "12345,12345" est affiché sous la forme "12 345,1235".

Tableau 3 x 3 avec des formats de date et de nombre personnalisés dans une feuille.
Figure 4. Mettre à jour les cellules pour qu'elles utilisent des formats de date et de nombre personnalisés dans 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": 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"
      }
    }
  ]
}