Mise en forme de base

Vous pouvez modifier la mise en forme des cellules et des plages dans les feuilles de calcul à l'aide de l'API Google Sheets. 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 Recette de mise en forme conditionnelle.

Lorsque vous mettez à jour une feuille de calcul, certains types de requêtes peuvent renvoyer des réponses. Ces réponses 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 la réponse est alors vide. La structure de réponse de ces exemples se trouve sous spreadsheets.batchUpdate.

Ces exemples sont présentés sous forme de requêtes HTTP pour être indépendants du langage. Pour découvrir comment implémenter une mise à jour par lot dans différents langages à l'aide de s 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. Vous trouverez l'ID de la feuille de calcul dans son URL. Vous pouvez obtenir l'ID de la feuille à l'aide de la spreadsheets.get méthode. Les plages sont spécifiées à l'aide de la notation A1. Par exemple, Sheet1!A1:D5.

Dans la vidéo ci-dessus, vous découvrirez comment mettre en forme des cellules de feuille de calcul de différentes manières, y compris en créant des lignes figées, en mettant du texte en gras, en implémentant une mise en forme de devise, en effectuant une validation de cellule et en limitant les valeurs de cellule.

Modifier les bordures de la cellule

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

Tableau 3x3 avec une bordure supérieure et inférieure bleue en pointillés pour chaque cellule.
Figure 1. Mettre en forme chaque cellule avec une bordure supérieure et inférieure bleue en pointillé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": [
    {
      "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, la justification du texte et le met en gras. Si vous omettez les indices de colonne dans le champ range, toute la ligne est mise 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 3x3 avec une ligne d'en-tête mise en forme dans une feuille.
Figure 2. Mettre en forme la ligne d'en-tête 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": 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 des 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 3x3 avec des cellules fusionnées dans une feuille.
Figure 3. Fusionner 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 un format 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 des formats numériques personnalisés. 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 dans ce format : "02:05:07 PM, Sun Apr 03 2016".

La deuxième requête attribue aux cellules de B1:B10 le format numérique personnalisé #,##0.0000, qui indique que les nombres doivent être regroupés avec des virgules comme séparateurs, qu'il doit y avoir quatre chiffres après la virgule et que tous les zéros non significatifs, 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".

Pour en savoir plus, consultez Formats de date et de nombre.

Tableau 3x3 avec des formats de date/heure et de nombre personnalisés dans une feuille.
Figure 4. Mettre à jour les cellules afin qu'elles aient des formats de date et d'heure et des formats numériques 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"
      }
    }
  ]
}