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 illustrent comment certaines opérations de mise en forme courantes peuvent être effectuées 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. Dans ce cas, la réponse est vide. La structure des réponses pour ces exemples est disponible sous spreadsheets.batchUpdate.

Ces exemples sont présentés sous la forme de requêtes HTTP pour être neutres en ce qui concerne le langage. Pour découvrir comment implémenter une mise à jour groupée dans différents langages à l'aide des bibliothèques clientes de l'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 son URL. Vous pouvez obtenir l'ID de la feuille à l'aide de la méthode spreadsheets.get. Ces plages sont spécifiées au format A1. Exemple de plage : Feuille1!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 implémentant 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 (haut et bas). Le champ innerHorizontal crée des bordures horizontales à l'intérieur de la plage. Si vous ne renseignez pas ce champ, les bordures ne seront ajoutées qu'en haut et en bas de toute la plage.

Tableau de 3 par 3 avec chaque cellule ayant une bordure bleue en pointillés pour le haut et le bas.
Figure 1 : Mettez en forme chaque cellule d'une feuille avec une bordure bleue en pointillés (haut et bas).

Le protocole de requête est illustré 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 ne renseignez pas 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 pour 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 illustré 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 dans A3:B6, tout en laissant les lignes séparées.

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

Le protocole de requête est illustré 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 décimal ou une date/heure personnalisée pour une plage

L'exemple de code spreadsheets.batchUpdate suivant montre comment utiliser RepeatCellRequest pour mettre à jour des cellules afin de leur attribuer des formats de date et d'heure et de nombres personnalisés. La première requête donne aux cellules de la plage A1:A10 le format de date et 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, Sun Apr 03 2016".

La deuxième requête attribue aux cellules 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 quatre chiffres après la virgule et que tous les zéros à l'exception d'un 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 de trois par trois avec des formats de date et d'heure personnalisés et de nombres dans une feuille.
Figure 4. Modifiez les formats de date et d'heure et de nombre dans les cellules d'une feuille.

Le protocole de requête est illustré 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"
      }
    }
  ]
}