Ce document décrit les principes de base de l'utilisation de la ressource spreadsheets.values.
Les feuilles de calcul peuvent comporter plusieurs feuilles, chacune pouvant contenir un nombre illimité de lignes ou de colonnes. Une cellule est un emplacement à l'intersection d'une ligne et d'une colonne spécifiques. Elle peut contenir une valeur de données. L'API Google Sheets fournit la ressource spreadsheets.values pour permettre la lecture et l'écriture de valeurs.
Si vous devez insérer des lignes ou mettre à jour la mise en forme et d'autres propriétés dans une feuille, vous devez utiliser la méthode batchUpdate de la ressource spreadsheets, comme décrit dans Mettre à jour des feuilles de calcul.
Méthodes de ressources
La ressource spreadsheets.values fournit les méthodes suivantes pour lire et écrire des valeurs, chacune pour une tâche spécifique :
| Accès à la plage | Lecture | Écriture |
|---|---|---|
| Plage unique | spreadsheets.values.get |
spreadsheets.values.update |
| Plusieurs plages | spreadsheets.values.batchGet |
spreadsheets.values.batchUpdate |
| Ajouts | spreadsheets.values.append |
En général, il est recommandé de combiner plusieurs lectures ou mises à jour avec les méthodes batchGet et batchUpdate (respectivement), car cela améliore l'efficacité.
Vous trouverez des exemples de code pour chacune de ces méthodes sur les pages d'exemples Lecture de base et Écriture de base. Pour afficher tous les exemples de code, consultez la page de présentation des exemples.
Lire les valeurs des cellules
Pour lire les valeurs de données d'une feuille, vous avez besoin de l'ID de la feuille de calcul et de la notation A1 pour la plage. Si vous spécifiez la plage sans l'ID de la feuille (A1:B2), la requête s'exécute sur la première feuille de la feuille de calcul. Pour en savoir plus sur les ID de feuilles de calcul et la notation A1, consultez la présentation de l'API Google Sheets.
Plusieurs paramètres de requête facultatifs contrôlent le format de la sortie :
| Paramètre de format | Valeur par défaut |
|---|---|
majorDimension |
ROWS |
valueRenderOption |
FORMATTED_VALUE |
dateTimeRenderOption |
SERIAL_NUMBER |
Notez que vous ne devez utiliser dateTimeRenderOption que si valueRenderOption n'est pas FORMATTED_VALUE.
Il n'y a pas de limite explicite à la quantité de données renvoyées. Les erreurs ne renvoient aucune donnée. Les lignes et colonnes vides de fin sont omises.
Les méthodes get unique et get par lot sont décrites dans les sections suivantes. Pour obtenir d'autres exemples de code d'opérations de lecture de base, consultez Lecture de base.
Lire les valeurs d'une seule plage
Pour lire une seule plage de valeurs dans une feuille de calcul, utilisez une requête spreadsheets.values.get :
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
La réponse à cette requête est renvoyée sous la forme d'un objet ValueRange qui fait partie de la ressource spreadsheets.values.
Lire les valeurs de plusieurs plages
Pour lire plusieurs plages de valeurs discontinues dans une feuille de calcul, utilisez une requête spreadsheets.values.batchGet qui vous permet de spécifier plusieurs plages à récupérer :
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
La réponse à cette requête est renvoyée sous la forme d'un objet BatchGetValuesResponse contenant l'spreadsheetId et une liste d'objets ValueRange.
Écrire des valeurs de cellule
Pour écrire dans une feuille, vous avez besoin de l'ID de la feuille de calcul, de la plage de cellules en notation A1 et des données que vous souhaitez écrire dans un objet de corps de requête approprié. Pour en savoir plus sur les ID de feuilles de calcul et la notation A1, consultez la présentation de l'API Google Sheets.
Plusieurs paramètres de requête contrôlent la façon dont les données sont écrites et dont la réponse est mise en forme :
| Paramètre d'écriture | Valeur par défaut |
|---|---|
valueInputOption |
(Obligatoire) |
includeValuesInResponse |
false |
responseValueRenderOption |
FORMATTED_VALUE |
responseDateTimeRenderOption |
SERIAL_NUMBER |
Le paramètre valueInputOption obligatoire contrôle la façon dont les données d'entrée doivent être interprétées. (Pour les mises à jour par lot, ce paramètre est spécifié dans le corps de la requête.) Les options compatibles sont décrites dans le tableau suivant :
ValueInputOption |
Description |
|---|---|
RAW |
L'entrée n'est pas analysée et est insérée en tant que chaîne. Par exemple, si vous saisissez "=1+2", la chaîne "=1+2" est placée dans la cellule, et non la formule. (Les valeurs non string, comme les valeurs booléennes ou les nombres, sont toujours traitées comme RAW.) |
USER_ENTERED |
L'entrée est analysée exactement comme si elle avait été saisie dans l'interface utilisateur de Sheets. Par exemple, "1er mars 2016" devient une date et "=1+2" devient une formule. Les formats peuvent également être déduits.Par exemple, "100,15 $" devient un nombre avec une mise en forme de devise. |
Notez que vous ne devez utiliser responseDateTimeRenderOption que si responseValueRenderOption n'est pas FORMATTED_VALUE.
Les méthodes de mise à jour unique et groupée sont décrites dans les sections suivantes. Pour obtenir d'autres exemples de code d'opérations d'écriture de base, consultez Écriture de base.
Écrire des valeurs dans une seule plage
Pour écrire des données dans une seule plage, utilisez une requête spreadsheets.values.update :
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Le corps de la requête de mise à jour doit être un objet ValueRange, mais le seul champ obligatoire est values. Si range est spécifié, il doit correspondre à la plage dans l'URL. Dans ValueRange, vous pouvez éventuellement spécifier son majorDimension.
Par défaut, ROWS est utilisé. Si COLUMNS est spécifié, chaque tableau interne est écrit dans une colonne au lieu d'une ligne.
Lors de la mise à jour, les valeurs sans données sont ignorées. Pour effacer des données, utilisez une chaîne vide (""). Vous pouvez également effacer des valeurs de plusieurs plages sans les remplacer à l'aide de la méthode spreadsheets.values.batchClear.
Si vous utilisez des métadonnées de développement, consultez le guide sur les métadonnées de développement pour savoir comment utiliser les filtres de données afin de lire, de mettre à jour ou d'effacer des valeurs avec les méthodes spreadsheets.values.batchGetByDataFilter, spreadsheets.values.batchUpdateByDataFilter et spreadsheets.values.batchClearByDataFilter.
Écrire des valeurs dans plusieurs plages
Si vous souhaitez écrire plusieurs plages discontinues, vous pouvez utiliser une requête spreadsheets.values.batchUpdate :
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Le corps de la requête de mise à jour groupée doit être un objet BatchUpdateValuesRequest, qui contient un ValueInputOption et une liste d'objets ValueRange (un pour chaque plage écrite). Chaque objet ValueRange spécifie ses propres range, majorDimension et données d'entrée.
Ajouter des valeurs
Pour ajouter des données après une table de données dans une feuille, utilisez une requête spreadsheets.values.append :
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Le corps de la requête de mise à jour doit être un objet ValueRange, mais le seul champ obligatoire est values. Si range est spécifié, il doit correspondre à la plage dans l'URL. Dans ValueRange, vous pouvez éventuellement spécifier son majorDimension.
Par défaut, ROWS est utilisé. Si COLUMNS est spécifié, chaque tableau interne est écrit dans une colonne au lieu d'une ligne.
La plage d'entrée permet de rechercher des données existantes et de trouver un "tableau" dans cette plage. Les valeurs sont ajoutées à la ligne suivante du tableau, en commençant par la première colonne. Par exemple, prenons Sheet1 qui ressemble à ceci :
| A | B | C | D | E | |
| 1 | x | y | z | ||
| 2 | x | y | z | ||
| 3 | |||||
| 4 | x | y | |||
| 5 | y | z | |||
| 6 | x | y | z | ||
| 7 |
La feuille contient deux tableaux : A1:C2 et B4:D6. Les valeurs ajoutées commenceraient à B7 pour toutes les entrées range suivantes :
Sheet1, car il examinera toutes les données de la feuille et déterminera que le tableau àB4:D6est le dernier tableau.B4ouC5:D5, car ils figurent tous les deux dans la tableB4:D6.B2:D4, car la dernière table de la plage est la tableB4:D6(même si elle contient également la tableA1:C2).A3:G10, car la dernière table de la plage est la tableB4:D6(même si elle commence avant et se termine après).
Les entrées range suivantes ne déclencheraient pas l'écriture à B7 :
A1commencerait à écrire àA3, car cette valeur se trouve dans le tableauA1:C2.E4commencerait à écrire àE4, car il ne se trouve dans aucune table. (A4commencerait également à écrire àA4pour les mêmes raisons.)
Vous pouvez également choisir d'écraser les données existantes après une table ou d'insérer de nouvelles lignes pour les nouvelles données. Par défaut, l'entrée écrase les données après la table. Pour écrire les nouvelles données dans de nouvelles lignes, utilisez InsertDataOption et spécifiez insertDataOption=INSERT_ROWS.
Pour en savoir plus sur les limites de cellules et de lignes dans Sheets, consultez Fichiers pouvant être stockés dans Google Drive.