Si vous disposez d'applications basées sur l'API Google Sheets v3, vous pouvez migrer vers API Google Sheets version 4. La version 4 est basée sur JSON et offre une interface et ajoute une quantité importante de fonctionnalités qu'il est impossible dans la version 3.
Cette page fournit une correspondance entre les anciennes commandes de l'API Sheets v3 et leurs des opérations équivalentes dans la version 4 de l'API Sheets. La cartographie se concentre en grande partie sur spreadsheets.values , qui fournit une fonctionnalité directe de lecture et d'écriture des cellules. D'autres aspects, tels que l'ajout de feuilles ou la mise à jour des propriétés des feuilles, sont gérés par la collection Sheets. Notez que les structures JSON de l'API v4 ne sont pas rétrocompatibles avec Structures XML utilisées dans la version 3.
Pour en savoir plus sur les ressources disponibles dans l'API Sheets v4, consultez la Documentation de référence de l'API
Notation et conditions
Dans la version 3 de l'API, les feuilles d'une feuille de calcul spécifique sont appelées "feuilles de calcul". L'équivalent du terme "feuilles de calcul" utilisés par l'API v4.
Les API vous demandent souvent de spécifier un ID de feuille de calcul. de la feuille de calcul sur laquelle vous travaillez. De plus, ils ont souvent besoin de l'identifiant feuille en cours de manipulation. Ces valeurs apparaissent soit dans le cadre du point de terminaison de l'API, URL, en tant que paramètres de requête ou dans le corps d'une requête. Sur cette page, espaces réservés spreadsheetId et sheetId se référer respectivement à la feuille de calcul et à l’ID de la feuille. Lorsque vous utilisez les méthodes décrites sur cette page, remplacez les identifiants réels à ces emplacements.
L'API v3 attribue également un ID aux lignes récupérées à l'aide de son list feed; il est représenté sur cette page par l'espace réservé rowId.
Autoriser les requêtes
Lorsque votre application s'exécute, elle demande aux utilisateurs d'accorder certaines autorisations. les niveaux d'accès que vous spécifiez dans votre application déterminent les autorisations qu'elle demande.
API v3
L'API Sheets v3 fonctionne avec un seul champ d'application d'autorisation:
https://spreadsheets.google.com/feeds
qui est un alias pour
https://www.googleapis.com/auth/spreadsheets
Vous pouvez utiliser l'un ou l'autre format de champ d'application.
API v4
L'API Sheets v4 utilise un ou plusieurs des ensembles de champs d'application suivants:
https://www.googleapis.com/auth/spreadsheets.readonly https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive
Utilisez les habilitations en lecture seule si votre application n'a pas besoin d'apporter de modifications les feuilles ou les propriétés de la feuille d'un utilisateur. Utilisez des champs d'application de feuilles de calcul plutôt que Champs d'application Drive si l'application n'a pas besoin d'un accès général à Drive.
Visibilité
Dans les anciennes versions de l'API, le terme visibilité est utilisé pour désigner la la disponibilité d'une feuille de calcul donnée.
API v3
L'API Sheets v3 exprime la visibilité directement dans ses points de terminaison. public
La feuille de calcul a été "Publiée sur le Web". Il est donc possible d'y accéder
API sans autorisation, alors qu'une feuille de calcul private
nécessite
l'authentification unique. La visibilité est spécifiée dans le point de terminaison après la
ID de la feuille de calcul:
https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full
API v4
Dans la nouvelle API Sheets v4, il n'y a pas de déclaration explicite de visibilité. Les appels d'API sont effectués à l'aide des ID de feuille de calcul. Si l'application ne comporte pas autorisation d'accéder à la feuille de calcul spécifiée, une erreur est renvoyée. Sinon, l'appel se poursuit.
Projection
Le terme projection est utilisé par l'API Sheets v3 pour désigner l'ensemble de données. renvoyée par un appel d'API donné (soit l'intégralité de l'appel, soit un sous-ensemble fixe) définies dans l'API. L'API Sheets v4 n'utilise pas la projection. Il s'agit plutôt vous permet de mieux contrôler les données qui sont renvoyées.
API v3
Seuls deux paramètres de projection sont possibles dans la version 3 de l'API Sheets. full
projection renvoie toutes les informations disponibles, tandis que basic
renvoie une
sous-ensemble de données fixe et plus petit (pour les feuilles de calcul, les flux de listes et les flux de cellules).
Comme pour la visibilité, la projection doit être spécifiée dans le point de terminaison de l'API.
(après le paramètre de visibilité):
https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/public/basic
Le plus petit sous-ensemble de données fourni par la projection basic
est intéressant
pour rendre le code plus efficace, mais ne peut pas être personnalisé.
API v4
Bien que l'API Sheets v4 puisse renvoyer un ensemble de données complet, elle ne définit pas de valeurs fixes
semblables au paramètre de visibilité basic
de l'API Sheets v3.
Méthodes de la feuille de calcul
la collecte de données limitent la quantité de données qu'ils renvoient grâce à l'utilisation
Un paramètre de requête fields
Par exemple, la requête suivante ne renvoie que les titres de toutes les feuilles d'une feuille de calcul spécifique:
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?fields=sheets.properties.title
Créer une feuille de calcul
API v3
La version 3 de l'API Sheets ne permet pas de créer des feuilles de calcul.
la méthode Files.create de l'API Drive
peut être utilisée pour créer des feuilles de calcul. Pour ce faire,
pour déclarer le champ d'application https://www.googleapis.com/auth/drive
.
API v4
La méthode Files.create de l'API Drive permet
peut également être utilisé avec l'API Sheets v4. Toutefois, l'application doit fournir
le champ d'application https://www.googleapis.com/auth/drive
.
Comme alternative, l'API Sheets v4 fournit une spreadsheets.create , qui permet également d'ajouter des feuilles, de définir la feuille de calcul et la feuille des propriétés et ajouter des plages nommées. Par exemple, la requête suivante crée feuille de calcul et lui donne le nom « NewTitle » :
POST https://sheets.googleapis.com/v4/spreadsheets
{ "properties": {"title": "NewTitle"} }
Lister les feuilles de calcul pour l'utilisateur authentifié
API v3
Le flux de l'API Sheets v3 permet à une application de récupérer une liste de tous les feuilles de calcul accessibles par l'utilisateur authentifié. Flux de feuilles de calcul point de terminaison:
GET https://spreadsheets.google.com/feeds/spreadsheets/private/full
API v4
L'API Sheets v4 ne fournit pas cette opération spécifique. Nous vous recommandons migrer votre application pour qu'elle utilise le champ d'application drive.file avec Outil de sélection Google pour la sélection d'une feuille de calcul.
S'il est nécessaire de lister les feuilles de calcul, il est possible de les dupliquer
via la méthode Files.list de l'API Drive, en utilisant
une requête mimeType
:
GET https://www.googleapis.com/drive/v3/files ?q=mimeType='application/vnd.google-apps.spreadsheet'
Répertorier toutes les feuilles de calcul d'un utilisateur à l'aide de la méthode files.list de l'API Drive nécessite un champ d'application restreint.
Récupérer les métadonnées d'une feuille
L'API Sheets v3 fournit un flux permettant d'accéder aux métadonnées des feuilles contenues dans une feuille de calcul donnée (les données des lignes et des cellules sont accessibles via un flux distinct). Les métadonnées comprennent des informations telles que les titres des feuilles et les informations de taille.
L'API Sheets v4 spreadsheets.get permet d'accéder à ces informations, et bien plus encore.
API v3
Le flux de feuilles de calcul est accessible à partir de ce point de terminaison de l'API (à l'aide d'un d'autorisation approprié):
GET https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full
La structure de la réponse à cette requête est semblable à celle-ci :
les données de chaque feuille contenues dans un <entry>
distinct:
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:gs="http://schemas.google.com/spreadsheets/2006"
xmlns:gd="http://schemas.google.com/g/2005"
gd:etag='W/"D0cERnk-eip7ImA9WBBXGEg."'>
<id>https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full</id>
<updated>2006-11-17T18:23:45.173Z</updated>
<title type="text">Groceries R Us</title>
<link rel="alternate" type="text/html"
href="https://spreadsheets.google.com/ccc?key=spreadsheetId"/>
<link rel="http://schemas.google.com/g/2005#feed"
type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
<link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
<author>
<name>Fitzwilliam Darcy</name>
<email>fitz@example.com</email>
</author>
<openSearch:totalResults>1</openSearch:totalResults>
<openSearch:startIndex>1</openSearch:startIndex>
<openSearch:itemsPerPage>1</openSearch:itemsPerPage>
<entry gd:etag='"YDwqeyI."'>
<id>https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId</id>
<updated>2006-11-17T18:23:45.173Z</updated>
<title type="text">Sheet1</title>
<content type="text">Sheet1</content>
<link rel="http://schemas.google.com/spreadsheets/2006#listfeed"
type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full"/>
<link rel="http://schemas.google.com/spreadsheets/2006#cellsfeed"
type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full"/>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId"/>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version"/>
<gs:rowCount>100</gs:rowCount>
<gs:colCount>20</gs:colCount>
</entry>
</feed>
API v4
La méthode spreadsheets.get
peut être utilisée pour acquérir des propriétés de feuille et d'autres métadonnées.
que celle disponible avec l'API Sheets v3. Si vous n'utilisez
si vous voulez lire les propriétés de la feuille, définissez la requête includeGridData
sur false
pour empêcher l'inclusion des données des cellules de la feuille de calcul:
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?includeGridData=false
Spreadsheet
La réponse contient un tableau de Sheet
Objets ; les titres des feuilles et les informations
sur la taille se trouvent spécifiquement
dans les SheetProperties
de ces objets. Exemple :
{ "spreadsheetId": spreadsheetId, "sheets": [ {"properties": { "sheetId": sheetId, "title": "Sheet1", "index": 0, "gridProperties": { "rowCount": 100, "columnCount": 20, "frozenRowCount": 1, "frozenColumnCount": 0, "hideGridlines": false }, ... }, ... }, ... ], ... }
Insérer une feuille dans une feuille de calcul
Les deux API vous permettent d'ajouter des feuilles à une feuille de calcul existante.
API v3
L'API Sheets v3 permet d'ajouter de nouvelles feuilles de calcul à une feuille de calcul en faisant
la requête POST
suivante (authentifiée). Vous pouvez spécifier la taille
nouvelle feuille:
POST https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:gs="http://schemas.google.com/spreadsheets/2006">
<title>Expenses</title>
<gs:rowCount>50</gs:rowCount>
<gs:colCount>10</gs:colCount>
</entry>
API v4
Vous pouvez ajouter de nouvelles feuilles en créant une AddSheet requête dans spreadsheets.batchUpdate . Dans le corps de la requête, vous pouvez spécifier les propriétés de la feuille la nouvelle feuille ; toutes les propriétés sont facultatives. Vous ne devez pas fournir une qui est utilisé pour une feuille existante.
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{ "requests": [{ "addSheet": { "properties": { "title": "Expenses", "sheetType": "GRID", "gridProperties": { "rowCount": 50, "columnCount": 10 } } } }], }
Modifier le titre et la taille d'une feuille de calcul
L'API Sheets v3 vous permet de mettre à jour les titres et la taille des feuilles de calcul. API Sheets v4 permet aussi d'effectuer cette opération, mais il peut aussi être utilisé pour mettre à jour d'autres propriétés de la feuille. Notez que la réduction de la taille d'une feuille peut entraîner l'affichage des données dans les cellules recadrées supprimées sans avertissement préalable.
API v3
Pour modifier le titre ou la taille d'une feuille de calcul, commencez par récupérer les
flux de feuille de calcul et
rechercher l'entrée souhaitée dans la feuille de calcul, qui contient une URL edit
.
Mettre à jour les métadonnées de la feuille de calcul et les envoyer dans le corps d'une requête PUT
à l'URL de modification. Exemple :
PUT https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version
<entry>
<id>
https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId
</id>
<updated>2007-07-30T18:51:30.666Z</updated>
<category scheme="http://schemas.google.com/spreadsheets/2006"
term="http://schemas.google.com/spreadsheets/2006#worksheet"/>
<title type="text">Expenses</title>
<content type="text">Expenses</content>
<link rel="http://schemas.google.com/spreadsheets/2006#listfeed"
type="application/atom+xml" href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full"/>
<link rel="http://schemas.google.com/spreadsheets/2006#cellsfeed"
type="application/atom+xml" href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full"/>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId"/>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version"/>
<gs:rowCount>45</gs:rowCount>
<gs:colCount>15</gs:colCount>
</entry>
API v4
Pour mettre à jour la taille, le titre et d'autres propriétés de la feuille, créez une
updateSheetProperties
dans le champ
spreadsheets.batchUpdate
. Le corps de la requête POST
doit contenir les propriétés à
modifié, et que le paramètre fields
doit lister explicitement ces propriétés
(si vous souhaitez mettre à jour toutes les propriétés, utilisez fields:"*"
comme raccourci pour
toutes les lister). Pour
Dans l'exemple suivant, le titre et la taille de la feuille
doivent être mises à jour pour la feuille avec l'ID donné:
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{ "requests": [ { "updateSheetProperties": { "properties": { "sheetId": sheetId, "title": "Expenses", "gridProperties": { "rowCount": 45, "columnCount": 15, } }, "fields": "title,gridProperties(rowCount,columnCount)" } } ], }
Pour récupérer les sheetId d'une feuille, utilisez la feuille de calcul spreadsheets.get.
Supprimer une feuille
Chacune de ces API peut supprimer des feuilles d'une feuille de calcul donnée.
API v3
Pour supprimer une feuille de calcul, commencez par récupérer les
flux de feuille de calcul, puis
envoyez une requête DELETE
sur l'URL edit
de l'entrée cible de la feuille de calcul.
DELETE https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version
API v4
Pour supprimer une feuille, créez un
DeleteSheet
dans le champ
spreadsheets.batchUpdate
. Le corps de la requête POST
ne doit contenir que l'élément sheetId pour le paramètre
feuille à supprimer. Exemple :
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{ "requests": [ { "deleteSheet": { "sheetId": sheetId } } ], }
Pour récupérer le sheetId d'une feuille individuelle, utilisez la méthode Feuille de calcul spreadsheets.get .
Récupérer les données de ligne
Le flux de lignes de liste est l'une des deux méthodes fournies par la version 3 de l'API Sheets pour accéder aux données contenues dans les cellules d'une feuille de calcul (l'autre étant le flux de cellules) ; La Le flux de lignes est conçu pour prendre en charge les opérations courantes sur les feuilles de calcul (lecture ligne par ligne, l'ajout de lignes ou le tri), mais fait certaines hypothèses qui la rendent inadaptée pour certaines tâches. Plus précisément, le flux de liste part du principe que les lignes vides sont et que des en-têtes obligatoires sont présents dans la première ligne feuille.
En revanche, la version 4 de l'API Sheets n'utilise pas de méthodes d'accès spécifique à la ligne. Les données des cellules de la feuille sont accessibles en référençant plages obligatoires au format A1. La les plages peuvent être des blocs de cellules, des lignes entières, des colonnes entières ou des feuilles entières. L'API peut également accéder à des ensembles de cellules disjoints.
API v3
Pour déterminer l'URL d'un flux basé sur une liste pour une feuille de calcul donnée, récupérez le flux de feuille de calcul et Recherchez l'URL du flux de liste dans l'entrée qui vous intéresse dans la feuille de calcul.
Pour récupérer un flux basé sur une liste, envoyez une requête GET
à l'URL du flux sous forme de liste.
à l'aide d'un en-tête d'autorisation approprié. Exemple :
GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full
La réponse à cette requête contient, entre autres, des entrées correspondant à des lignes spécifiques. Les cellules individuelles sont référencées par les noms indiqués dans la ligne d'en-tête (obligatoire) de la feuille. Par exemple, ici est une entrée de ligne unique:
<entry gd:etag='"S0wCTlpIIip7ImA0X0QI"'>
<id>rowId</id>
<updated>2006-11-17T18:23:45.173Z</updated>
<category scheme="http://schemas.google.com/spreadsheets/2006"
term="http://schemas.google.com/spreadsheets/2006#list"/>
<title type="text">Bingley</title>
<content type="text">Hours: 10, Items: 2, IPM: 0.0033</content>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId"/>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version"/>
<gsx:name>Bingley</gsx:name>
<gsx:hours>10</gsx:hours>
<gsx:items>2</gsx:items>
<gsx:ipm>0.0033</gsx:ipm>
</entry>
Par défaut, les lignes renvoyées dans le flux de listes apparaissent dans l'ordre des lignes. L'API Sheets v3 fournit des paramètres de requête permettant de modifier cet ordre.
Ordre inverse:
GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full?reverse=true
Classer selon une colonne spécifique:
GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full ?orderby=column:lastname
L'API Sheets v3 permet également de filtrer des lignes spécifiques à l'aide d'une structure (référencée par des en-têtes de colonne):
GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full ?sq=age>25%20and%20height<175
API v4
Avec l'API Sheets v4, les lignes peuvent être récupérées par plage à l'aide des spreadsheets.values.get ou spreadsheets.values.batchGet méthodes. Par exemple, la requête suivante renvoie toutes les lignes de "Feuille1" :
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1
La structure de la réponse à cette requête est semblable à celle-ci:
{ "range": "Sheet1", "majorDimension": "ROWS", "values": [["Name", "Hours", "Items", "IPM"], ["Bingley", "10", "2", "0.0033"], ["Darcy", "14", "6", "0.0071"]] }
Les cellules vides finales ne sont pas incluses dans la réponse lors de la récupération de l'intégralité des lignes, des colonnes ou des feuilles.
La version 4 de l'API Sheets ne propose pas d'équivalent pour la requête d'ordre des lignes
fournis par l'API Sheets v3. L'ordre inverse
est simple ; simplement
traiter le tableau values
renvoyé dans l'ordre inverse. La valeur Trier par colonne n'est pas
pris en charge en lecture, mais il est possible de trier les données de la feuille (à l'aide de
une SortRange)
puis la lire.
Actuellement, l'API Sheets v4 ne dispose pas d'équivalent direct pour les requêtes structurées de l'API Sheets v3. Cependant, vous pouvez récupérer les données pertinentes et les trier selon les besoins dans votre application.
Ajouter une ligne de données
Vous pouvez ajouter une ligne de données à une feuille à l'aide de l'une ou l'autre des API.
API v3
Pour déterminer l'URL d'un flux basé sur une liste pour une feuille de calcul donnée, récupérez le flux de feuille de calcul et recherchez l'URL du post dans l'entrée qui vous intéresse dans la feuille de calcul.
Pour ajouter une ligne de données, envoyez une requête POST
à l'URL du post.
à l'aide d'un en-tête d'autorisation approprié. Exemple :
POST https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full
Le corps de la requête POST
doit contenir une entrée pour les données de ligne à
ajouter, avec des cellules individuelles référencées par des en-têtes de colonne:
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:gsx="http://schemas.google.com/spreadsheets/2006/extended">
<gsx:hours>2</gsx:hours>
<gsx:ipm>0.5</gsx:ipm>
<gsx:items>60</gsx:items>
<gsx:name>Elizabeth</gsx:name>
</entry>
Les nouvelles lignes sont ajoutées à la fin de la feuille spécifiée.
API v4
Avec l'API Sheets v4, vous pouvez ajouter des lignes à l'aide des spreadsheets.values.append . L'exemple suivant écrit une nouvelle ligne de données en dessous de la dernière tableau dans "Feuille1" d'une feuille de calcul.
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/append/Sheet1
{ "values": [["Elizabeth", "2", "0.5", "60"]] }
De plus, l'API Sheets v4 vous permet également d'ajouter des cellules avec des et la mise en forme à l'aide des AppendCells dans une spreadsheets.batchUpdate.
Modifier une ligne avec de nouvelles données
Les deux API permettent de mettre à jour les données de ligne avec de nouvelles valeurs.
API v3
Pour modifier une ligne de données, examinez le flux de listes pour localiser l'entrée correspondant à la ligne que vous souhaitez mettre à jour. Mettez à jour le contenu de cette entrée selon les besoins. Assurez-vous que la valeur de l'ID dans l'entrée que vous utilisez correspond à l'identifiant de l'entrée existante.
Une fois l'entrée mise à jour, envoyez une requête PUT
avec l'entrée en tant que
à l'URL edit
fournie dans cette entrée de ligne,
à l'aide d'un en-tête d'autorisation approprié. Exemple :
PUT https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version
<entry gd:etag='"S0wCTlpIIip7ImA0X0QI"'>
<id>rowId</id>
<updated>2006-11-17T18:23:45.173Z</updated>
<category scheme="http://schemas.google.com/spreadsheets/2006"
term="http://schemas.google.com/spreadsheets/2006#list"/>
<title type="text">Bingley</title>
<content type="text">Hours: 10, Items: 2, IPM: 0.0033</content>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId"/>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version"/>
<gsx:name>Bingley</gsx:name>
<gsx:hours>20</gsx:hours>
<gsx:items>4</gsx:items>
<gsx:ipm>0.0033</gsx:ipm>
</entry>
API v4
Avec l'API Sheets v4, vous pouvez modifier une ligne à l'aide des La notation A1 de la ligne à modifier modifier et émettre un spreadsheets.values.update pour écraser cette ligne. La plage spécifiée ne doit faire référence qu'à la première cellule de la ligne ; l'API déduit les cellules à mettre à jour en fonction fournies avec la requête. Si vous spécifiez à la place une plage à plusieurs cellules, vous devez indiquer des valeurs comprises dans cette plage. Si ce n'est pas le cas, l'API renvoie .
Dans l'exemple suivant, la requête et le corps de la requête ajoutent des données à la section quatrième ligne de « Feuille1 » :
PUT https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1!A4
{ "values": [["Elizabeth", "2", "0.5", "60"]] }
Vous pouvez également mettre à jour les données de ligne spreadsheet.values.batchUpdate . il est plus efficace d'utiliser cette méthode si vous effectuez plusieurs de lignes ou de cellules.
De plus, l'API Sheets v4 vous permet également de modifier les propriétés des cellules et formatage des cellules à l'aide du UpdateCells ou RepeatCell dans une spreadsheets.batchUpdate.
Supprimer une ligne
Les deux API permettent de supprimer des lignes. Une ligne supprimée est retirée de la feuille de calcul et les lignes inférieures sont déplacées vers le haut.
API v3
Pour supprimer une ligne, commencez par la récupérer à partir de la
list feed,
Envoyez ensuite une requête DELETE
à l'URL edit
fournie dans l'entrée de la ligne.
Il s'agit de la même URL que celle utilisée pour mettre à jour la ligne.
DELETE https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version
Pour vous assurer de ne pas supprimer une ligne qui a été modifiée par un autre client depuis que vous l'avez récupéré, ajoutez un en-tête HTTP If-Match contenant la valeur ETag de la ligne d'origine. Vous pouvez déterminer la valeur ETag de la ligne en examinant l'attribut gd:etag de l'élément d'entrée.
Si vous souhaitez supprimer la ligne, que quelqu'un d'autre ait mis à jour ou non depuis que vous l'avez récupérée, utilisez If-Match: * et n'incluez pas l'ETag. Dans ce cas, vous n'avez pas besoin de récupérer la ligne avant de la supprimer.
API v4
La suppression de lignes avec la version 4 de l'API Sheets est gérée par une méthode spreadsheet.batchUpdate. , à l'aide d'un élément DeleteDimension requête. Cette demande peut aussi servir à supprimer des colonnes. et choisir de ne supprimer qu'une partie d'une ligne ou d'une colonne. Par exemple, Ce qui suit supprime la 6e ligne d'une feuille avec l'ID donné (les index de ligne sont basées sur zéro, avec la propriété startIndex inclusive et endIndex exclusive):
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{ "requests": [ { "deleteDimension": { "range": { "sheetId": sheetId, "dimension": "ROWS", "startIndex": 5, "endIndex": 6 } } } ], }
L'sheetId d'une feuille peut être récupérée à l'aide de la méthode spreadsheet.get.
Récupérer les données d'une cellule
L'API Sheets v3 fournit un flux de cellules pour un accès de base à toutes les données stockées dans un
feuille de calcul. Pour un accès en lecture, le flux de cellules
peut fournir l'intégralité de la feuille
contenu ou une plage de cellules de la feuille définies par un ensemble de paramètres de requête,
mais uniquement sous la forme d'un bloc unique : les plages disjointes doivent être récupérées
séparément à l'aide de requêtes GET
supplémentaires.
L'API Sheets v4 permet de récupérer n'importe quel ensemble de données de cellule d'une feuille (y compris plusieurs plages disjointes). L'API Sheets v3 ne peut renvoyer le contenu des cellules qu'en tant que des valeurs d'entrée (telles qu'un utilisateur peut les saisir sur un clavier) et/ou les sorties de la formule (si numérique) ; l'API Sheets v4 accorde un accès complet aux valeurs, formules, la mise en forme, les hyperliens, la validation des données et d’autres propriétés.
API v3
Pour déterminer l'URL d'un flux basé sur des cellules pour une feuille de calcul donnée, consultez le flux de feuilles de calcul puis recherchez l'URL du flux de cellules dans l'entrée qui vous intéresse dans la feuille de calcul.
Pour récupérer un flux basé sur des cellules, envoyez une requête GET
à l'URL du flux de cellules.
à l'aide d'un en-tête d'autorisation approprié. Exemple :
GET https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full
Les cellules sont référencées à l'aide des numéros de ligne et de colonne. L'extraction d'une seule valeur
la plage d'adresses IP en utilisant max-row
, min-row
, max-col
et min-col
paramètres de requête. Par exemple, la requête suivante récupère toutes les cellules de la colonne
4 (D), à partir de la ligne 2:
GET https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full ?min-row=2&min-col=4&max-col=4
L'API Sheets v3 renvoie la valeur inputValue
des cellules récupérées :
qu'un utilisateur saisirait normalement dans l'utilisateur Google Sheets
pour manipuler la cellule. inputValue
peut être une valeur littérale
ou une formule. Parfois, l'API renvoie également un numericValue
. Exemple :
lorsqu'une formule génère un nombre. Par exemple, une réponse peut inclure des valeurs
d'entrées similaires à la structure suivante:
<entry gd:etag='"ImB5CBYSRCp7"'>
<id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4</id>
<updated>2006-11-17T18:27:32.543Z</updated>
<category scheme="http://schemas.google.com/spreadsheets/2006"
term="http://schemas.google.com/spreadsheets/2006#cell"/>
<title type="text">D4</title>
<content type="text">5</content>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4"/>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4/srevc"/>
<gs:cell row="4" col="4" inputValue="=FLOOR(C4/(B4*60),.0001)"
numericValue="5.0">5</gs:cell>
</entry>
API v4
Récupérez les données d'une cellule en appelant une spreadsheets.values.get ou spreadsheets.values.batchGet pour la ou les plages d'intérêt, respectivement. Par exemple, Le code suivant renvoie les cellules de la colonne D de "Sheet2", à partir de la ligne 2, dans l'ordre de priorité de la colonne et renvoyant les formules telles qu'elles ont été saisies (à la fin sont omises):
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet2!D2:D?majorDimension=COLUMNS&valueRenderOption=FORMULA
La structure de la réponse à cette demande est semblable à celle-ci:
{ "spreadsheetId": spreadsheetId, "valueRanges": [ {"range": "Sheet2!D2:D", "majorDimension": "COLUMNS", "values": [["Widget", 234, "=FLOOR(C4/(B4*60),.0001)", "=D4\*1000"]] }] }
Il est plus efficace d'utiliser spreadsheet.values.batchGet si vous avez l'intention de récupérer plusieurs plages de données de cellules. Si vous souhaitez accéder aux propriétés des cellules telles que la mise en forme, la spreadsheet.get est requise.
Modifier une cellule
L'API Sheets v3 vous permet de modifier le contenu des cellules en envoyant une commande PUT
pour
le flux de cellules avec l'entrée
de cellule modifiée comme corps de la requête.
L'API Sheets v4, quant à elle, offre spreadsheets.values.update et spreadsheets.values.batchUpdate pour modifier le contenu des cellules.
API v3
Pour modifier le contenu d'une seule cellule, recherchez d'abord l'entrée de la cellule dans la
flux cellulaire.
L'entrée contient une URL de modification. Mettre à jour l'entrée pour refléter le contenu
que vous souhaitez ajouter à la cellule, puis envoyez une requête PUT
à l'URL de modification
avec l'entrée de cellule mise à jour
comme corps de la requête. Par exemple,
La cellule D2 (R2C4) suivante est mise à jour pour qu'elle contienne une formule SUM
:
PUT https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full//R2C4/srevc<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gs="http://schemas.google.com/spreadsheets/2006"> <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4</id> <link rel="edit" type="application/atom+xml" href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4"/> <gs:cell row="2" col="4" inputValue="=SUM(A1:B6)"/> </entry>
API v4
Dans la version 4 de l'API Sheets, vous pouvez modifier une seule cellule à l'aide de la commande
spreadsheets.values.update
. Cette méthode nécessite un paramètre de requête ValueInputOption
, qui
spécifie si les données d'entrée sont traitées comme si elles étaient saisies dans le
UI de Sheets (USER_ENTERED
), ou laissée non analysée et prise en l'état (RAW
) Pour
exemple, le code suivant met à jour la cellule D2 avec une formule:
PUT https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/D2?valueInputOption=USER_ENTERED
{"values": [["=SUM(A1:B6)"]]}
Si vous modifiez plusieurs cellules, utilisez la spreadsheets.values.batchUpdate pour les émettre en une seule requête.
Modifier plusieurs cellules à l'aide d'une requête par lot
Les deux API permettent de modifier le contenu de plusieurs cellules avec une seule requête (par lot). Les cellules désignées par une requête par lot sont doit se trouver dans une plage contingue.
Si une ou plusieurs modifications apportées à des cellules dans le lot échouent, l'API Sheets v3 permet aux autres de réussir. Cependant, l'API Sheets v4 renvoie une erreur si l'une des mises à jour par lot échoue, et n'applique aucune d'entre elles dans ce cas.
API v3
Pour modifier plusieurs cellules, récupérez d'abord un flux de cellules
pour la feuille de calcul. L'entrée contient une URL de lot. Envoyer un POST
à cette URL, ainsi qu'un corps de requête décrivant les cellules que vous
que vous souhaitez mettre à jour et le nouveau contenu de la cellule. Requête POST
et corps de la requête
présentent une structure semblable à celle-ci:
POST https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/batch
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:batch="http://schemas.google.com/gdata/batch"
xmlns:gs="http://schemas.google.com/spreadsheets/2006">
<id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full</id>
<entry>
<batch:id>request1</batch:id>
<batch:operation type="update"/>
<id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4</id>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4/version"/>
<gs:cell row="2" col="4" inputValue="newData"/>
</entry>
...
<entry>
<batch:id>request2</batch:id>
<batch:operation type="update"/>
<id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5</id>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5/version"/>
<gs:cell row="5" col="2" inputValue="moreInfo"/>
</entry>
</feed>
Le champ batch:id
doit identifier la requête de manière unique dans le lot.
Pour les modifications de cellules, le champ batch:operation
doit être défini sur update
. gs:cell
identifie la cellule par ligne et par numéro de colonne et fournit les nouvelles données
pour l'insérer. id
contient l'URL complète de la cellule à mettre à jour.
link
doit comporter un attribut href
contenant le chemin d'accès complet à
l'identifiant de la cellule. Tous ces champs sont obligatoires pour chaque entrée.
API v4
L'API Sheets v4 permet d'éditer en série les valeurs des cellules via les spreadsheets.values.batchUpdate .
Vous pouvez modifier plusieurs cellules en envoyant une requête POST
avec la
les modifications de données
spécifiées dans le corps de la requête. Exemple :
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values:batchUpdate
{ "valueInputOption": "USER_ENTERED" "data": [ {"range": "D4", "majorDimension": "ROWS", "values": [["newData"]] }, {"range": "B5", "majorDimension": "ROWS", "values": [["moreInfo"]] } ] }
Si vous avez spécifié une seule cellule comme plage, toutes les valeurs fournies sont écrite sur la feuille en commençant par cette cellule comme coordonnée en haut à gauche. Si vous spécifiez une plage à plusieurs cellules, les valeurs fournies doivent correspondre cette plage exactement ; Si ce n'est pas le cas, l'API renvoie une erreur.