Convertisseur JSON en Excel

Convertissez JSON en Excel en ligne : gratuit, instantané et privé. Le fichier est traité dans votre navigateur, jamais envoyé.

Résultat

Le fichier converti et un aperçu apparaîtront ici.

Prêt. Choisissez un fichier de tableau à convertir.

Comment fonctionne la conversion

  • Un tableau d’objets devient des lignes et des colonnes ; les objets imbriqués sont aplatis en colonnes à clé pointée comme address.city.
  • Le classeur est écrit comme une seule feuille de valeurs simples — sans formules, mise en forme ni onglets supplémentaires.

Votre fichier de tableau est converti dans votre navigateur. Rien n’est téléversé vers BroBroGo.

FAQ

Comment convertir JSON en Excel ?

Déposez votre fichier JSON et cliquez sur convertir : le fichier Excel se télécharge en quelques secondes, avec un aperçu du résultat. Tout se passe sur votre appareil.

Quelle taille de fichier puis-je convertir ?

Jusqu’à 8 Mo, 10 000 lignes et 200 colonnes par fichier. Pour de plus grands jeux de données, mieux vaut les découper d’abord.

Conversion de JSON vers Excel: aplatisement, typage et traitement local

L’utilitaire présent sur cette page prend un fichier JSON et produit un classeur Excel (XLSX). Ce qui semble trivial cache un fossé entre deux mondes : d’un côté un format hiérarchique typé (objets, tableaux, chaînes, nombres, booléens, null), de l’autre un tableur plat organisé en lignes et colonnes. La conversion n’est pas une simple copie : elle impose un aplatisement des structures imbriquées (avec des clés à chemin pointé) et une gestion des types qui n’existe pas, par exemple, lors de l’import d’un CSV. L’opération s’exécute entièrement dans le navigateur, aucune donnée n’est transmise à un serveur.


Pourquoi JSON ne se copie pas tel quel dans Excel

Un objet JSON peut contenir des sous-objets (exemple: { "adresse": { "ville": "Paris", "codePostal": 75001 } }) et des tableaux d’objets ([ {...}, {...} ]). Un fichier XLSX, lui, ne connaît que des lignes et des colonnes dans ses feuilles. Chaque cellule contient une valeur atomique (texte, nombre, booléen, date, etc.), mais pas de hiérarchie.

Le convertisseur applique la règle suivante:

  • Tableau d’objets: chaque objet devient une ligne, ses clés deviennent des en-têtes de colonnes. Si une valeur est elle-même un objet, ses clés sont décomposées avec le chemin pointé. Exemple: { "adresse": { "ville": "Paris" } } donne une colonne adresse.ville.
  • Tableau de tableaux: chaque sous-tableau est traité comme une ligne, sans interprétation de clés.

Le fichier de sortie ne contient qu’une seule feuille, nommée Sheet1.


Aplatisement par chemins pointés: exemple concret

Prenons un fichier clients.json contenant un tableau de deux clients:

[
  {
    "nom": "Dupont",
    "adresse": {
      "rue": "12 rue des Lilas",
      "ville": "Lyon"
    },
    "actif": true,
    "commande": {
      "id": 1001,
      "total": 249.99
    }
  },
  {
    "nom": "Martin",
    "adresse": {
      "rue": "5 avenue Pasteur",
      "ville": "Marseille"
    },
    "actif": false,
    "commande": null
  }
]

Le tableau produit aura les colonnes suivantes:

nom adresse.rue adresse.ville actif commande.id commande.total
Dupont 12 rue des Lilas Lyon vrai 1001 249.99
Martin 5 avenue Pasteur Marseille faux

Observations:

  • La clé adresse.rue sépare le chemin par un point.
  • Le booléen actif reste un booléen dans la cellule XLSX, pas une chaîne « true » / « false ».
  • commande étant null pour Martin, les cellules commande.id et commande.total sont vides (la valeur null devient une cellule vide, ni 0 ni "null").
  • Si la structure des objets n’est pas uniforme (certains ont des champs supplémentaires), le convertisseur fusionne l’ensemble des clés présentes dans tous les objets. Les lignes qui n’ont pas une clé reçoivent une cellule vide.

Types de données: JSON vs XLSX

Le format XLSX (un fichier XML compressé dans un zip) peut stocker plusieurs types de cellules: nombre (double IEEE 754), booléen, chaîne de caractères, date, erreur. Le convertisseur fait correspondre les types JSON suivants:

Type JSON Type XLSX Remarque
nombre (entier ou flottant) nombre La précision est conservée tant qu’elle tient dans un float 64 bits.
booléen booléen true devient VRAI (affiché comme TRUE dans Excel), false devient FAUX.
chaîne chaîne Les retours à la ligne et guillemets sont échappés selon les règles XML.
null cellule vide Aucune valeur n’est écrite, même pas une chaîne vide.
objet / tableau (aplati) Le contenu est décomposé en plusieurs colonnes.

Ce typage natif est un avantage décisif par rapport à une conversion vers CSV, où tout (y compris les nombres) devient du texte, obligeant l’utilisateur à re-convertir les colonnes dans Excel.


Traitement local et limites

L’ensemble de la conversion se déroule dans le navigateur de l’utilisateur (côté client). Aucun fichier n’est téléversé vers un serveur. Cela garantit la confidentialité des données, mais impose des contraintes de taille et de complexité.

Les fichiers JSON trop volumineux peuvent dépasser la mémoire allouée au moteur JavaScript du navigateur. La page affiche alors des messages d’erreur explicites:

  • « This file is too large. Use a file under 8 MB. » – la taille maximale est de 8 Mo.
  • « This conversion is taking too long. Try a smaller file. » – un délai d’attente (timeout) interne interrompt le traitement après environ 12 secondes.
  • « Conversion cancelled. » – l’utilisateur peut annuler manuellement.
  • « This JSON is invalid or not table-shaped. » – le fichier n’est pas un tableau d’objets ou de tableaux, ou la syntaxe JSON est incorrecte.
  • « This file has no table rows. » – le tableau JSON est vide.
  • « This table has more than ‹max› rows. » – limite de 10 000 lignes dépassée.
  • « This table has more than ‹max› columns. » – limite de 200 colonnes dépassée.

Ces limites ne sont pas des défauts, mais des arbitrages techniques pour garantir une réponse rapide et ne pas faire planter l’onglet du navigateur.


Formats d’entrée et validation

Le convertisseur n’accepte qu’un fichier à la fois. L’entrée doit être un fichier JSON. Si l’utilisateur sélectionne un fichier d'un autre type, le message « Choose a CSV, JSON or XLSX file. » apparaît.

Le fichier JSON doit être « table-shaped », c’est-à-dire être un tableau d’objets ou un tableau de tableaux. Un objet racine seul (exemple: { "nom": "Dupont" }) est accepté et converti en une table d'une seule ligne.


FAQ

Pourquoi mes booléens true/false apparaissent-ils comme VRAI/FAUX dans la cellule Excel? Le format XLSX stocke les booléens sous forme de valeur booléenne native. Excel affiche VRAI ou FAUX selon la langue du logiciel. Si vous ouvrez le fichier dans une version française d’Excel, vous verrez VRAI, mais la valeur sous-jacente est un booléen, pas une chaîne.

**Mon JSON a des tableaux imbriqués (par exemple comme valeur d’une clé). Comment sont-ils gérés?** Le convertisseur aplatit les objets, mais **ne déplie pas les tableaux d'objets** qui ne sont pas eux-mêmes des objets. Si une valeur est un tableau de primitives (), elle sera convertie en une chaîne de caractères (sérialisée) dans une seule cellule. Pour éviter cela, il faut pré-traiter le JSON pour transformer ce tableau en sous-objets (par exemple { "valeur0": 1, "valeur1": 2 }).

Puis-je obtenir plusieurs feuilles de calcul dans le XLSX? Non. Une seule feuille est créée, nommée Sheet1. Toute hiérarchie JSON est aplatie dans cette feuille unique.

La conversion échoue avec « This JSON is invalid or not table-shaped ». Que dois-je vérifier? Vérifiez que votre fichier est un JSON valide et qu'il est de forme tabulaire (un tableau d'objets ou un tableau de tableaux). Utiliser un validateur JSON en ligne pour détecter les erreurs de syntaxe (virgule manquante, guillemet mal placé).

Mon fichier JSON est très lourd (plusieurs Mo). Le navigateur semble bloqué. Que faire? Fermez les autres onglets et réessayez avec un fichier plus petit, ou découpez le fichier en plusieurs morceaux. La limite est de 8 Mo. Le message d’erreur vous indiquera la taille maximale autorisée.

Que se passe-t-il si deux objets ont des clés différentes? Le convertisseur fusionne toutes les clés de tous les objets en une seule liste d’en-têtes de colonnes. Les objets qui n’ont pas une clé particulière laisseront la cellule vide. Par exemple, si seul le premier client a commande.id, les lignes suivantes auront une cellule vide dans cette colonne.