Convertisseur JSON vers Excel
JSONConvertit un tableau JSON en classeur Excel .xlsx avec SheetJS et le télécharge.
Les URL distantes ne sont pas récupérées ; collez votre JSON directement.
Sur cette page
Qu’est-ce qu’un convertisseur JSON vers Excel ?#
Un convertisseur JSON vers Excel prend un document JSON en forme de tableau — typiquement un tableau d’objets similaires — et produit un véritable classeur .xlsx que vous pouvez ouvrir dans Excel, Google Sheets ou LibreOffice. Chaque objet devient une ligne, chaque clé de premier niveau devient une colonne, et la première ligne de la feuille est l’en-tête. Le résultat est un véritable fichier tableur binaire, pas un CSV renommé.
Cela fait le pont entre les systèmes qui parlent JSON (API, journaux, exports NoSQL) et les personnes qui travaillent dans un tableur. Un backend peut déverser un millier d’enregistrements en JSON ; un analyste humain les veut dans Excel pour faire des tableaux croisés dynamiques, filtrer et construire des graphiques. Le convertisseur gère aussi le désordre qu’apportent les données réelles : objets imbriqués, champs présents dans certaines lignes mais pas d’autres, et champs de type tableau qui n’ont pas d’endroit naturel où atterrir dans une grille.
Deux conventions font le gros du travail. Les objets imbriqués sont aplatis en clés à notation pointée — {"address": {"city": "London"}} devient une colonne nommée address.city. Les champs de type tableau (et tout objet qui survit à l’aplatissement) sont sérialisés dans leur cellule sous forme de texte JSON, parce qu’une cellule de tableur contient une valeur, pas une structure imbriquée. Le résultat est une table plane et rectangulaire que le logiciel tableur ouvre sans sourciller.
Mode d’emploi#
- Collez un tableau JSON d’objets dans le panneau Entrée à gauche. Un objet isolé, ou un objet enveloppant les lignes sous une clé unique comme
{"data": [...]}, est également accepté. - Cochez Aplatir les imbriqués (activé par défaut) pour déployer les objets imbriqués en colonnes à notation pointée. Décochez-le si vous préférez conserver les objets imbriqués comme texte JSON dans une seule cellule.
- Le panneau Sortie affiche un aperçu séparé par tabulations correspondant exactement à ce qui atterrira dans la feuille — la ligne d’en-tête suivie des lignes de données. La ligne d’état indique le nombre de lignes exportées.
- Cliquez sur Télécharger .xlsx pour enregistrer le classeur. Le fichier est construit dans votre navigateur et téléchargé directement ; il n’y a aucun serveur.
- Exemple charge un petit jeu de données d’employés ; Effacer réinitialise les deux panneaux et désactive le bouton de téléchargement.
Principales fonctionnalités#
- Un vrai fichier .xlsx, pas un CSV renommé. Le classeur est construit avec SheetJS et téléchargé en binaire, donc Excel l’ouvre nativement avec des colonnes, des types et une structure de feuille corrects.
- Ordre des colonnes stable sur des données hétérogènes. Les colonnes sont calculées comme l’union des clés de chaque ligne, dans l’ordre de première apparition. Les lignes hétérogènes ne décalent ni ne désalignent les colonnes — un champ manquant devient simplement une cellule vide.
- Aplatissement en notation pointée. Les objets imbriqués se déploient en colonnes nommées (
address.city,address.zip) afin que leurs valeurs intérieures soient individuellement filtrables et triables dans la feuille. - Aperçu séparé par tabulations. Le panneau de sortie reflète exactement le contenu de la feuille, ce qui permet de vérifier la forme avant le téléchargement.
- Entièrement côté client. Analyse, aplatissement et génération du classeur s’exécutent dans votre navigateur. Les données ne quittent jamais la page.
Exemple détaillé#
Chargez Exemple et l’entrée est un tableau de trois enregistrements d’employés :
[
{ "id": 1, "name": "Ada Lovelace", "role": "Engineer", "salary": 95000, "skills": ["math", "logic"] },
{ "id": 2, "name": "Bob", "role": "PM", "salary": 120000, "skills": ["docs", "plan"] },
{ "id": 3, "name": "Grace", "role": "Architect", "salary": 150000, "skills": ["systems", "c", "cobol"] }
]
Les trois lignes partagent les mêmes clés, donc les colonnes sont id, name, role, salary, skills dans cet ordre. Le champ skills est un tableau, il est donc sérialisé dans chaque cellule. L’aperçu séparé par tabulations est :
id name role salary skills
1 Ada Lovelace Engineer 95000 ["math","logic"]
2 Bob PM 120000 ["docs","plan"]
3 Grace Architect 150000 ["systems","c","cobol"]
Cliquez sur Télécharger .xlsx et vous obtenez un classeur dont la première feuille a exactement ce contenu, avec id / name / role / salary / skills comme ligne d’en-tête. À partir de là, Excel traite salary comme des nombres (donc il les somme et les moyenne) et skills comme du texte.
Si une quatrième ligne était ajoutée en omettant salary, le convertisseur émettrait toujours les cinq colonnes et laisserait simplement cette cellule vide — aucun décalage de colonne, aucune donnée désalignée en aval.
FAQ#
Pourquoi mon objet imbriqué devient-il des colonnes avec des points dans leur nom ?#
C’est l’option Aplatir les imbriqués. Un champ comme "address": {"city": "London", "zip": "NW1"} ne peut pas tenir utilement dans une seule cellule, donc il est déployé en colonnes address.city et address.zip — chacune individuellement filtrable et triable dans Excel. Désactivez l’option si vous préférez conserver tout l’objet comme une chaîne JSON dans une seule cellule address.
Pourquoi mon tableau s’affiche-t-il comme ["math","logic"] dans la cellule ?#
Une cellule de tableur contient une valeur, et un tableau JSON est une structure imbriquée, donc il est sérialisé en texte JSON et placé tel quel dans la cellule. Cela garde les données sans perte — rien n’est abandonné — et vous pouvez toujours l’analyser plus tard. Si vous voulez chaque élément du tableau sur sa propre ligne, restructurez le JSON source avant la conversion (un enregistrement par élément).
Mes lignes ont des champs différents. Qu’en est-il des colonnes ?#
Le convertisseur prend l’union de toutes les clés de chaque ligne, dans l’ordre de leur première apparition, et l’utilise comme en-tête. Une ligne dépourvue d’un champ donné obtient une cellule vide pour celui-ci. Ajouter donc une ligne avec un champ manager supplémentaire se contente d’ajouter une colonne manager ; les lignes qui en sont dépourvues restent vides, et rien de déjà présent ne bouge.
Mes données sont-elles téléversées quelque part pour construire le .xlsx ?#
Non. L’analyse, l’aplatissement et la génération du classeur SheetJS s’exécutent tous dans votre navigateur. Le téléchargement est produit depuis un tampon en mémoire et remis directement à la boîte de dialogue d’enregistrement du navigateur — il n’y a aucun backend et aucune requête réseau.