Skip to content
Back to Blog
how-to-convert

Comment convertir un JSON en CSV pour Excel et Google Sheets

2026-05-17 8 min de lecture

Pourquoi JSON et CSV sont conçus pour des usages différents

Le JSON et le CSV sont conçus pour des mondes totalement différents. Le JSON (JavaScript Object Notation) représente des données structurées et hiérarchiques. Il gère facilement les objets imbriqués, les tableaux de tableaux et les types de données mixtes, c'est pourquoi il est devenu le standard pour les API et les configurations d'applications. Le CSV (Comma-Separated Values) est tout le contraire : un simple tableau plat. Chaque ligne doit avoir le même nombre de colonnes. Pas d'imbrication. Cette différence fondamentale signifie que tu ne peux pas simplement renommer un fichier .json en .csv et t'attendre à ce que ça fonctionne. Quand tu extrais des données d'une API REST, comme une liste de 500 fiches clients depuis un CRM, tu les recevras presque toujours en JSON. Une seule fiche client pourrait ressembler à ça : {"id": 1042, "name": "Sara Okonkwo", "email": "sara@example.com", "orders": [{"id": 88, "total": 49.99}]} Excel et Google Sheets ne peuvent pas analyser ce fichier pour en faire un tableau propre. Ils ont besoin de lignes plates. La conversion de JSON en CSV est la passerelle qui permet aux analystes, aux spécialistes du marketing et aux équipes opérationnelles d'importer les données des API dans les tableurs qu'ils utilisent tous les jours. La conversion est facile si ton JSON est une simple liste d'objets. Ça se complique beaucoup dès qu'il y a de l'imbrication, et c'est là que la plupart des gens bloquent.

Que deviennent les données JSON imbriquées lors de la conversion ?

C'est la partie que la plupart des tutoriels ignorent, et elle cause de vrais maux de tête. Lorsque ton JSON contient des objets ou des tableaux imbriqués, n'importe quel outil de conversion, y compris CocoConvert, doit décider comment l'aplatir. Il y a plusieurs façons de procéder. Une stratégie consiste à aplatir les clés imbriquées en utilisant la notation par points. Un champ comme `address.city` devient un en-tête de colonne, et la valeur atterrit directement dans cette cellule. C'est une excellente solution pour une imbrication simple sur un seul niveau. Une autre approche consiste à « stringifier » la valeur imbriquée, où l'objet ou le tableau entier est entassé dans une seule cellule sous forme de chaîne JSON. Cela préserve toutes les données, mais c'est pratiquement illisible dans un tableur sans travail supplémentaire. Une troisième stratégie, souvent la plus utile, consiste à développer les tableaux sur plusieurs lignes. Si un client a trois commandes, le convertisseur crée trois lignes distinctes pour ce client, en dupliquant les champs parents pour chaque commande. Cela rend les données immédiatement utilisables dans un tableur, mais ça peut aussi rendre ton fichier énorme. Par défaut, CocoConvert aplatit les objets imbriqués avec la notation par points et stringifie les tableaux imbriqués. Donc, si ton JSON a un objet à deux niveaux comme {"shipping": {"method": "express", "days": 2}}, tu obtiendras des colonnes pour `shipping.method` et `shipping.days`. Mais s'il contient un tableau, ce tableau entier se retrouvera sous forme de chaîne dans une seule cellule. Pour des données profondément imbriquées (trois niveaux ou plus, ou des tableaux d'objets), tu auras presque certainement besoin de prétraiter le JSON avec un script pour obtenir un CSV propre. Aucun convertisseur en ligne ne peut gérer comme par magie tous les schémas d'imbrication. Tu devrais absolument faire un test avec un petit échantillon avant de lui envoyer des milliers d'enregistrements.

Convertir un JSON en CSV avec CocoConvert

Quand tu as un JSON simple — un tableau plat d'objets ou une imbrication simple sur un niveau — utiliser CocoConvert est rapide et ne demande aucune configuration. Le processus est simple. Premièrement, rends-toi sur /convert/json-to-csv. Tu verras la boîte de téléversement et les options de sortie. Téléverse ton fichier .json. L'offre gratuite de CocoConvert gère les fichiers jusqu'à 50 Mo. Si ton fichier est plus gros, tu devras le diviser. Une petite ligne de code Python comme `json.dump(data[:5000], open('chunk1.json','w'))` est parfaite pour ça. Ensuite, choisis ton délimiteur. La virgule est la norme, mais si tu es dans une région où Excel s'attend à un point-virgule (je pense à vous, l'Allemagne et la France), tu dois changer ce paramètre avant de télécharger. Ce petit réglage piège tellement de monde. Laisse toujours l'option « inclure une ligne d'en-tête » activée. Les tableurs ont besoin de cette première ligne pour les noms de colonnes. Après ça, clique simplement sur « Convertir ». Un fichier de 10 000 lignes prend généralement moins de 10 secondes. Tu peux ensuite télécharger ton tout nouveau fichier .csv. Voici une astuce de pro : si tes clés JSON contiennent des espaces ou des caractères spéciaux, comme « first name » ou « unit$price », elles deviendront tes en-têtes de colonne tels quels. Excel peut le gérer, mais écrire des formules devient agaçant car tu dois utiliser les lettres de colonne au lieu de références structurées. Il est beaucoup plus propre de renommer les clés dans ton JSON avant de convertir, ou de simplement corriger les noms de colonnes dans Excel juste après l'importation. Cela t'épargnera des maux de tête plus tard.

Ouvrir correctement le CSV dans Excel

Télécharger un CSV ne représente que la moitié du travail. La façon dont tu l'ouvres dans Excel fait toute la différence entre un tableau propre et un fatras de données inutilisable dans une seule colonne. Quoi que tu fasses, ne double-clique pas simplement sur le fichier. La seule méthode fiable est d'utiliser l'assistant d'importation. Dans Excel 365 et Excel 2019, tu le trouveras sous Données → Obtenir des données → À partir d'un fichier texte/CSV. Sélectionne ton fichier, et Excel affichera un aperçu. C'est le moment de confirmer le délimiteur. S'il ne correspond pas à celui que tu as choisi lors de la conversion, toutes tes données seront entassées dans la colonne A. Quiconque s'est déjà battu avec une importation CSV connaît que trop bien cette galère. Fais attention aux formats de date. Si ton JSON utilisait des chaînes ISO 8601 (comme `2025-11-03T14:22:00Z`), Excel les importe souvent comme du texte brut. Tu peux corriger ça. Sélectionne la colonne, va dans Données → Convertir, choisis Délimité, clique deux fois sur Suivant, puis définis le format de données de la colonne sur Date (JMA). Cela convertit le texte en vraies valeurs de date que tu peux trier et filtrer correctement. Pour les gros fichiers, disons 200 000 lignes, Excel les importera, mais il va ramer. Les tableaux croisés dynamiques et les RECHERCHEV seront d'une lenteur exaspérante. Utilise plutôt Power Query (Données → Obtenir et transformer des données → À partir d'un fichier CSV). Il est bien meilleur pour gérer de grands ensembles de données sans rendre Excel inutilisable. Et sois conscient de la limite stricte d'Excel : 1 048 576 lignes. Si ton JSON produit un CSV avec plus de lignes que ça, Excel supprimera silencieusement tout ce qui dépasse la limite. Si tu approches de ce nombre, divise ton fichier source avant même de commencer la conversion.

Importer le CSV dans Google Sheets

Google Sheets gère en général mieux les importations de CSV qu'Excel, mais quelques paramètres sont cruciaux. Le processus est simple : ouvre une feuille, va dans Fichier → Importer, et téléverse ton CSV. Dans la boîte de dialogue qui apparaît, tu as plusieurs choix. Règle toujours l'« Emplacement d'importation » sur une nouvelle feuille pour éviter d'écraser des données existantes. Règle le « Type de séparateur » sur Virgule (ou Personnalisé pour un point-virgule). Voici le paramètre le plus important : « Convertir le texte en nombres, dates et formules ». Si tes données contiennent des codes produits qui ressemblent à des nombres (par ex., `00847`), tu dois décocher cette case pour conserver les zéros non significatifs. Sinon, Google Sheets va « corriger » tes données avec bienveillance en les transformant en le nombre 847. Si tu laisses la conversion automatique activée, Sheets fait un assez bon travail pour analyser les dates ISO dans son format natif. Il convertit également les chaînes numériques en nombres, ce qui est généralement bien mais peut être un problème pour ces identifiants spéciaux. Si tu fais ça souvent, comme extraire une nouvelle exportation JSON tous les lundis, ne le fais pas manuellement. Pense à utiliser la fonction `IMPORTDATA` de Google Sheets ou un Google Apps Script. `IMPORTDATA` est limité aux URL publiques, ce qui est une solution à oublier pour les données privées. Apps Script est bien plus puissant ; il peut récupérer des données depuis un point de terminaison JSON protégé et les écrire directement dans une feuille, sautant complètement l'étape du CSV. Mais pour des tâches ponctuelles ou pour les équipes qui n'ont pas de développeur sous la main, une importation manuelle à l'aide d'un fichier de CocoConvert sur /convert/json-to-csv est le moyen le plus rapide de faire le travail. Ça prend deux minutes et zéro ligne de code. Google Sheets a ses propres limites : 100 Mo par fichier et 10 millions de cellules par feuille de calcul. Un CSV avec 50 000 lignes et 20 colonnes ne fait que 1 million de cellules, tu as donc beaucoup de marge de manœuvre.

Gérer les erreurs de conversion courantes

Tu vas rencontrer quelques problèmes courants lors de la conversion de JSON en CSV. Voici ce qu'il faut surveiller. Des clés incohérentes entre les objets. Le JSON est flexible. Un objet dans un tableau peut avoir un champ `phone` alors que le suivant n'en a pas. Les convertisseurs comme CocoConvert gèrent cela en créant une colonne pour chaque clé unique trouvée dans l'ensemble des données. Lorsqu'une clé est manquante pour un enregistrement, la cellule est simplement laissée vide. C'est la bonne façon de faire, mais sois prévenu : un fichier source désordonné avec 30 structures d'objets légèrement différentes peut donner un CSV avec 80 colonnes, la plupart vides. Nettoie ton schéma JSON avant de convertir. Unicode et caractères spéciaux. Les fichiers JSON sont presque toujours en UTF-8. Si tes données incluent des caractères non latins (comme l'arabe, le chinois ou des lettres accentuées), tu dois dire à Excel de s'y attendre. Lorsque tu importes via Données → Obtenir des données → À partir d'un fichier texte/CSV, cherche le paramètre « Origine du fichier » dans la boîte de dialogue d'aperçu et change-le en `65001: Unicode (UTF-8)`. Si tu oublies ça, tous tes caractères spéciaux se transformeront en charabia illisible (mojibake). Les très grands nombres. Celui-ci est subtil mais destructeur. Le JSON peut gérer des nombres énormes avec une précision parfaite. Mais les tableurs ne le peuvent pas. Excel et Google Sheets utilisent tous deux des calculs en virgule flottante 64 bits, ce qui signifie qu'ils commencent à arrondir les grands entiers après 9 007 199 254 740 992 (ou 2^53). Si ton JSON contient un nombre plus grand, comme 9007199254740993, il sera silencieusement arrondi à l'importation. Si tu traites de grands ID entiers provenant d'une base de données, ta seule option sûre est de les stocker sous forme de chaînes de caractères dans le JSON *avant* de le convertir. Tableaux vides et valeurs nulles. Une valeur `null` en JSON devient correctement une cellule vide dans un CSV. Un tableau vide `[]` est géré différemment par divers outils. CocoConvert le transforme en une chaîne de caractères vide, ce qui est le meilleur choix pour les tableurs et évite toute confusion.

Quand un convertisseur n'est pas le bon outil

Les convertisseurs en ligne sont parfaits pour les tâches ponctuelles et les vérifications rapides, surtout lorsque ton JSON est déjà plat. Mais ils ne sont pas le bon outil pour toutes les situations. Si ta conversion fait partie d'un pipeline automatisé — une tâche ETL nocturne, un traitement de données en CI/CD, ou tout ce qui doit s'exécuter sans ton intervention — tu dois utiliser une solution scriptée. Un outil en ligne n'est tout simplement pas assez fiable pour l'automatisation. La bibliothèque pandas de Python est la norme de l'industrie ici ; tu peux lire un JSON avec `pd.read_json()`, l'aplatir avec `pd.json_normalize()`, et écrire en CSV avec `.to_csv()` en quelques lignes seulement. Pour les magiciens de la ligne de commande, `jq` est une alternative incroyablement puissante dans les environnements Unix : `jq -r '(.[0] | keys_unsorted) as $keys | $keys, (.[] | [.[$keys[]]] | @csv)' input.json > output.csv` fera l'affaire pour des tableaux plats. Lorsque ton JSON est profondément imbriqué (trois niveaux de profondeur ou plus, ou contient des tableaux d'objets), aucun convertisseur en ligne ne te donnera un CSV propre directement. Le problème est structurel ; tu dois écrire un script personnalisé qui comprend ton schéma spécifique pour l'aplatir correctement. Un autre format à connaître est JSON Lines (.jsonl), où chaque ligne est un objet JSON distinct. CocoConvert gère parfaitement ces fichiers, tu peux donc les téléverser tels quels. Assure-toi simplement que ton fichier ne mélange pas du JSON standard et du JSON Lines, sinon tu devras d'abord le nettoyer. Pour tout le reste ? Une exportation JSON d'une plateforme SaaS, une réponse d'API dont tu as besoin dans un tableur, un fichier de configuration que tu veux examiner sous forme de tableau — file directement sur /convert/json-to-csv. Téléverse ton fichier, et tu auras un CSV propre en moins d'une minute.

Ready to convert?

Try it now — fast, secure, and private.

Convert Now →
Comment convertir un JSON en CSV pour Excel et Google Sheets | CocoConvert Blog