Importer du JSON dans Google Sheets
Convertissez le JSON en CSV dans votre navigateur, puis utilisez Fichier → Importer → Importer de Google Sheets et réglez le séparateur en conséquence. Sheets n’a pas d’importateur JSON, donc le CSV est la voie pratique ; les clés imbriquées arrivent sous forme de chemins de colonne comme customer.name, et l’ensemble des colonnes est l’union de tous les enregistrements plutôt que les seules clés du premier.
Importer du JSON dans Google Sheets en clair
Google Sheets n’a pas d’importateur JSON. Il n’existe aucune boîte de dialogue qui prenne une réponse d’API et la mette en grille, et la voie Apps Script – UrlFetchApp, JSON.parse, setValues – est une vraie réponse que la plupart des gens ne devraient pas avoir à écrire. CSV est le format d’échange que Sheets accepte, ce qui fait de l’étape de conversion tout le travail.
La conversion en elle-même est la moitié facile, et le convertisseur JSON vers CSV la fait sans envoi. La moitié qui tourne mal, c’est l’import, et il tourne mal de manière propre à Sheets et non partagée avec Excel : Sheets devine le séparateur à partir de la première ligne au lieu de demander, il applique sa propre conversion de types à l’entrée, et il transformera volontiers une colonne de codes produits en nombres en effaçant les zéros initiaux avant que vous ayez pu dire quoi que ce soit.
Cette page est la recette pour faire entrer un export JSON dans une grille Sheets sans rien de tout cela. Ce que produit le convertisseur, quel réglage d’import utiliser, comment bloquer la conversion de types, et les deux plafonds durs que vous pouvez atteindre avec un compte gratuit. Tout s’exécute dans votre navigateur – un export JSON contient généralement de vrais enregistrements sur de vraies personnes, et il n’a pas besoin de détour par un serveur pour devenir un tableur.
La conversion a lieu dans le convertisseur JSON vers CSV — collez le JSON, choisissez un séparateur, puis copiez ou téléchargez le résultat.
Si la destination est Excel plutôt que Sheets, passez par la voie Excel: un vrai classeur conserve les nombres dans les cellules numériques et évite complètement la boîte de dialogue d’import CSV.
Pourquoi Sheets n’importe pas le JSON, et quoi utiliser à la place
Google Sheets peut lire directement trois choses : CSV, TSV et une grille collée. Il peut récupérer un CSV distant avec IMPORTDATA, et l’URL d’un Google Sheets publié est elle-même un point de terminaison CSV – mais il n’existe aucun chemin intégré d’un document JSON vers une plage de cellules. La réponse officielle est Apps Script, et pour un usage ponctuel c’est plus de travail que la tâche ne le mérite.
Le CSV est donc la voie. Convertir d’abord, importer ensuite, et l’ensemble prend environ une minute. La conséquence importante : chaque limitation du CSV devient une limitation de Sheets. Une cellule ne distingue pas la chaîne 22201 du nombre 22201, et elle ne distingue pas une cellule vide d’un champ absent de l’enregistrement. Ces deux distinctions existent dans votre JSON et ne survivront pas au voyage – ce qui vaut la peine d’être su avant de supprimer l’original.
La boîte de dialogue d’import, champ par champ
Fichier → Importer → Importer, puis choisissez le fichier. La boîte de dialogue qui apparaît décide du résultat, et deux de ses contrôles comptent.
Le menu déroulant du séparateur est réglé par défaut sur « Détecter », qui regarde la première ligne et devine. Cette devinette a raison assez souvent pour être suivie et tort assez souvent pour mériter d’être contournée : choisissez explicitement « Virgule » ou « Point-virgule », selon ce que le convertisseur a produit. Si le fichier s’ouvre avec tout dans la colonne A, la devinette s’est trompée – réimportez plutôt que d’essayer de scinder la colonne après coup.
La bascule « Convertir le texte en nombres, dates et formules » est celle qui fait des dégâts silencieux. Laissée activée, Sheets applique ses propres heuristiques : un code produit devient un nombre et perd ses zéros initiaux, une chaîne de version comme 1.10 devient une date, un long identifiant passe en notation scientifique. Désactivez-la pour importer chaque valeur comme texte, exactement tel qu’écrit. Vous pouvez toujours convertir une colonne délibérément ensuite ; vous ne pouvez pas récupérer un zéro initial effacé à l’import.
Aplatir le JSON imbriqué en colonnes
Le convertisseur aplatit les objets imbriqués en chemins à points et les tableaux en chemins à crochets : {"customer":{"name":"Ada"}} devient une colonne nommée customer.name et un tableau tags devient tags[0], tags[1]. Les deux notations sont délibérément différentes pour qu’un nom de colonne ne soit jamais ambigu sur son origine, et pour qu’un aller-retour via le CSV vers JSON reconstruise l’imbrication.
L’ensemble des colonnes est l’union des champs de tous les enregistrements dans l’ordre de première apparition. Cela compte plus pour Sheets que pour un tableur local, car l’import est une opération unique : un champ qui n’apparaît qu’au quarantième enregistrement reçoit quand même sa propre colonne, tandis qu’un convertisseur qui lit l’en-tête sur le premier enregistrement le perd en silence et vous vous en rendez compte des semaines plus tard, quand un filtre ne renvoie rien.
| JSON | Colonne | Remarques |
|---|---|---|
| {"customer":{"name":"Ada"}} | customer.name | Les membres d’objets deviennent des chemins à points |
| {"tags":["a","b"]} | tags[0], tags[1] | Chaque élément de tableau reçoit une colonne |
| {"vip":true} | vip | Importé comme TRUE, pas comme le texte « true » |
| {"note":null} | note | Une cellule vide – indiscernable d’un champ absent |
Les deux plafonds que vous pouvez réellement atteindre
Un compte Google gratuit autorise 10,000,000 cellules dans un tableur, et c’est 10,000,000 valeurs plutôt que des lignes. Un export de 50 colonnes arrive donc à bout de souffle à 200,000 lignes, et un import qui dépasse le plafond échoue en cours de route avec un message sur le fichier plutôt que sur la limite. Si votre export est plus grand, découpez-le par plage de dates ou par préfixe d’identifiant et importez les morceaux dans des feuilles séparées.
L’autre plafond est la taille de fichier de la boîte d’import, qui est de 100 MB. Un CSV de cent mille enregistrements sur vingt colonnes pèse environ 20 MB, donc c’est le moins probable des deux – mais un export JSON avec de longs champs de texte peut l’atteindre. Le convertisseur refuse au-delà de 8 MB de JSON au lieu de figer l’onglet, donc en pratique vous rencontrerez d’abord cette limite, et elle vous le dira.
Garder la feuille synchronisée avec la source
Une plage importée est un instantané. Si le JSON est un export de quelque chose qui change – une table de commandes, un CRM, un dump d’analytique – la feuille est périmée dès qu’elle atterrit, et réimporter à la main chaque matin est exactement la corvée qui finit en tableur cassé auquel personne ne fait confiance.
Les options honnêtes sont au nombre de deux. Si la source peut publier du CSV par HTTP, IMPORTDATA le récupère selon un planning dans une seule cellule, et SPLIT plus une formule de tableau le mettent en forme – aucune étape de conversion, au prix de données publiques pour quiconque possède l’URL. Sinon, gardez la conversion en local et répétez-la : l’outil accepte un collage, donc la boucle est exporter, coller, télécharger, importer, et cela prend moins d’une minute. Ce qui ne vaut pas la peine, c’est de brancher un Apps Script sur une clé d’API privée pour qu’une feuille détienne des identifiants qu’elle ne devrait pas détenir.
Questions fréquentes
Mon JSON est-il envoyé quand je le convertis ?
Non. La conversion est un appel de fonction dans l’onglet de votre navigateur – il n’existe aucune route d’API vers laquelle envoyer le document. Vous pouvez le vérifier : ouvrez DevTools, regardez le panneau Network, collez un document, et aucune requête ne l’emporte. La Content-Security-Policy de la page définit connect-src 'self', donc le navigateur refuserait de toute façon un envoi sortant. Les exports JSON sont généralement de vrais enregistrements – c’est exactement pour cela que la conversion reste locale.
Pourquoi mon CSV s’ouvre-t-il dans Sheets avec tout dans une seule colonne ?
Le séparateur du fichier ne correspond pas à celui que la boîte d’import a deviné. Sheets est réglé par défaut sur « Détecter » et déduit à partir de la première ligne, donc un fichier délimité par des virgules importé avec « Point-virgule » sélectionné atterrit entièrement dans la colonne A. Réimportez avec Fichier → Importer et réglez le séparateur explicitement pour correspondre à ce que le convertisseur a produit – virgule, point-virgule, tabulation ou barre verticale. Scinder la colonne ensuite avec une formule est possible et toujours pire que de réimporter.
Pourquoi mes codes produits ont-ils perdu leurs zéros initiaux ?
L’option « Convertir le texte en nombres, dates et formules » de la boîte d’import, activée par défaut. Sheets réinterprète tout ce qui ressemble à un nombre, donc 00123 devient 123 et un long identifiant passe en notation scientifique. Désactivez cette option et chaque valeur s’importe comme texte, exactement tel qu’écrit. C’est la plainte la plus courante au sujet des imports CSV dans Sheets, et contrairement à Excel il n’y a pas de dérogation par colonne dans la boîte – c’est tout ou rien.
Sheets peut-il importer du JSON directement ?
Pas via une boîte de dialogue intégrée. IMPORTDATA lit du CSV et du TSV par HTTP, pas du JSON, et il n’y a pas d’option d’import JSON dans Fichier → Importer. Apps Script peut le faire – UrlFetchApp pour récupérer, JSON.parse pour lire, setValues pour écrire – et pour un travail récurrent piloté par une API, c’est une chose raisonnable à construire. Pour une conversion ponctuelle, c’est considérablement plus de travail que de convertir en CSV et d’importer cela.
Combien de lignes puis-je importer ?
Dix millions de cellules avec un compte Google gratuit, et c’est un décompte de cellules plutôt que de lignes : un export de cinquante colonnes plafonne donc autour de 200,000 lignes. Le dépasser fait échouer l’import en cours de route. Si votre export est plus grand, découpez-le en morceaux et importez chacun dans sa propre feuille, ou utilisez la sortie du convertisseur, sans notion de plage, comme source d’un script plutôt que d’une grille.
La conversion gère-t-elle les objets et les tableaux imbriqués ?
Oui. Les objets deviennent des chemins de colonne à points – customer.name – et les tableaux des chemins à crochets – tags[0], tags[1]. L’ensemble des colonnes est l’union de tous les enregistrements dans l’ordre de première apparition, donc les champs optionnels reçoivent une colonne avec des cellules vides ailleurs au lieu d’être abandonnés. Le mode Explode fait l’aller-retour via le convertisseur CSV vers JSON ; le mode Join tasse un tableau de scalaires dans une seule cellule et est perdant par conception.
Quels outils liés devriez-vous utiliser ensuite ?
- Convertir JSON en CSVTransforme des enregistrements en feuille de calcul, imbrications comprisesOuvrir
- JSON vers ExcelCréez un classeur Excel typé, pas un CSV avec une nouvelle extensionOuvrir
- Convertir CSV en JSONLit un export de feuille de calcul, guillemets comprisOuvrir
- Règles CSV RFC 4180Guide en langage clairOuvrir
- Formater du JSONIndente, trie les clés et supprime les commentairesOuvrir
- Outils JSONComparez, formatez, validez et explorez des documents JSON.Ouvrir