Excel en JSON

Convertissez vos fichiers Excel en JSON

Prend en charge les classeurs jusqu’à 150 000 lignes sur l’ensemble des feuilles (fichiers jusqu’à 90 Mo). La conversion se fait dans votre navigateur ; le bouton « Annuler » l’arrête.

Cliquez ou déposez un fichier de tableur ou CSV ici (Excel, ODS, Numbers…)Choisissez un fichier de tableur ou CSV (Excel, ODS, Numbers…)

À propos de l’outil Excel en JSON

Excel en JSON lit un classeur (Excel .xlsx, .xlsm, .xlsb ou .xls, OpenDocument .ods, Apple Numbers, WPS .et, Microsoft Works .wks ou .xlr, Lotus 1-2-3 ou Quattro Pro) ou un fichier .csv, et écrit un objet JSON dont les clés sont les noms des feuilles, feuilles masquées comprises. Chaque feuille devient un tableau d’objets ligne dont les clés viennent de la première ligne de la feuille, et toutes les lignes ont les mêmes clés : une cellule vide donne null. Les cellules de date deviennent du texte ISO 8601, un nombre tapé dans une cellule au format Texte (un code postal comme 02134) reste une chaîne, les formules donnent leur résultat enregistré, et une erreur de formule comme #N/A donne null. Les emoji sont conservés, y compris dans les fichiers écrits par Python (pandas, openpyxl). Un fichier .csv est lu comme du texte brut : chaque valeur reste une chaîne et sa feuille s’appelle Sheet1. La conversion démarre quand vous choisissez le fichier, dans votre navigateur.

Exemple

Un classeur de deux feuilles : Orders (une cellule de date, une cellule de date et heure, des codes postaux dans des cellules au format Texte, un pourcentage, une erreur de formule #N/A, deux colonnes intitulées Note) et Rates (des années en en-tête). Voici le JSON que l’outil renvoie :

Classeur

Feuille « Orders » :
Order | Customer | Ordered | Zip | Discount | Note | Note
1001 | Ann Lee | 2024-01-15 (cellule de date) | 02134 (cellule Texte) | 10 % | (vide) | gift
1002 | Bob Ruiz | 2024-02-29 13:45 (cellule de date) | 94110 (cellule Texte) | =RECHERCHEV(…) → #N/A | rush | (vide)

Feuille « Rates » :
Region | 2023 | 2024
West | 1.25 | 1.5

JSON

{
  "Orders": [
    {
      "Order": 1001,
      "Customer": "Ann Lee",
      "Ordered": "2024-01-15",
      "Zip": "02134",
      "Discount": 0.1,
      "Note": null,
      "Note_1": "gift"
    },
    {
      "Order": 1002,
      "Customer": "Bob Ruiz",
      "Ordered": "2024-02-29T13:45:00",
      "Zip": "94110",
      "Discount": null,
      "Note": "rush",
      "Note_1": null
    }
  ],
  "Rates": [
    {
      "2023": 1.25,
      "2024": 1.5,
      "Region": "West"
    }
  ]
}

Comment convertir un fichier Excel en JSON

  1. 1Choisissez le classeur ou le fichier .csv dans la zone d’importation (.xlsx, .xls, .ods, .numbers, .csv et les autres formats listés plus bas) ; la conversion démarre d’elle-même.
  2. 2Si le classeur contient plusieurs feuilles, leurs noms s’affichent pendant sa lecture, et « Annuler » arrête le travail.
  3. 3Cliquez sur « Télécharger » pour enregistrer converted.json, indenté de deux espaces.

Formats et limites

Entrée
Excel (XLSX, XLSM, XLSB, XLS), OpenDocument (ODS), Apple Numbers (NUMBERS, NUMBERS.ZIP), WPS (ET), Microsoft Works (WKS, XLR), Lotus 1-2-3 (WKS, WK1, WK3, 123), Quattro Pro (QPW, WB1, WQ1), CSV, TSV ou TXT séparé par des tabulations
Sortie
Objet JSON avec, pour chaque feuille, un tableau d’objets ligne
Sur un ordinateur
jusqu’à 90 Mo et 150 000 lignes, toutes feuilles confondues
Sur les téléphones et les tablettes
jusqu’à 30 Mo et 50 000 lignes, toutes feuilles confondues

Usages courants

Remplir une base de données ou une API fictive
Un développeur reçoit une liste de produits sous forme de classeur et la transforme en converted.json, un tableau par feuille, prêt pour un script de remplissage, chaque date étant déjà écrite en texte ISO 8601.
Alimenter une page web à partir d’une feuille de calcul
Une équipe tient les horaires d’un magasin ou une liste de prix dans un classeur partagé ; le JSON donne à un site statique un objet par ligne, avec les mêmes clés sur chaque ligne, même là où une cellule est restée vide.
Vérifier un export avant un import
Avant d’importer l’export d’un CRM ou d’une boutique en ligne, le convertir montre les clés et les valeurs exactes que recevra un script : en-têtes en double renommés name_1, cellules vides en null, et dates en texte au lieu de numéros de série.

Quel outil choisir

  • Excel en CSV: un fichier CSV par feuille, réunis en ZIP quand il y en a plusieurs, avec le choix du séparateur ; les pourcentages et les montants en dollars y sont écrits tels qu’Excel les affiche, là où cet outil écrit le nombre enregistré.
  • CSV en JSON: pour un fichier .csv que vous voulez typé : les colonnes faites uniquement de nombres deviennent des nombres JSON, et l’outil peut aussi écrire des tableaux de tableaux ou du JSON Lines. Ici, un .csv est lu comme du texte et chaque valeur reste une chaîne.
  • JSON en CSV: le chemin inverse, du JSON vers un fichier CSV avec une ligne d’en-tête, les objets imbriqués étant aplatis en noms de colonnes à points.

Où votre fichier est traité

Votre feuille de calcul est lue dans votre navigateur avec la bibliothèque SheetJS et n’est pas importée. Ce qui peut nous parvenir, c’est un rapport d’erreur : le texte de l’erreur, une fois retirés les noms de fichiers et le texte cité, le nom de l’outil, ainsi que le nom et la version de votre navigateur.

Questions fréquentes

Les cellules vides sont-elles incluses ?

Oui, sous la forme null. Toutes les lignes d’une feuille ont les mêmes clés : un code qui lit une propriété Note trouve null au lieu d’une clé absente. Les lignes entièrement vides sont ignorées.

Les dates sont-elles converties en texte ?

Oui, en ISO 8601 : 2024-01-15, ou 2024-02-29T13:45:00 quand la cellule a une heure, sans fuseau horaire ajouté. Sans cette étape, une date Excel sortirait sous la forme d’un numéro de série, comme 45306.

Puis-je choisir les feuilles à convertir ?

Non. Toutes les feuilles sont converties, feuilles masquées comprises, chacune sous son propre nom dans le JSON. Supprimez ensuite les tableaux dont vous n’avez pas besoin, ou enregistrez d’abord les feuilles voulues dans un classeur à part.

Les en-têtes de colonnes en double sont-ils conservés ?

Oui. Quand deux colonnes ont le même en-tête, par exemple name, la seconde devient name_1 dans chaque objet ligne : aucune valeur n’est écrasée.

La ligne d’en-tête doit-elle être la première ligne ?

Oui. La première ligne de la zone utilisée de la feuille donne les clés : un titre comme Rapport des ventes 2024 tapé au-dessus du tableau devient une clé, et les vrais en-têtes deviennent une ligne de données. Supprimez les lignes situées au-dessus des en-têtes avant de convertir.

Que devient une colonne dont la cellule d’en-tête est vide ?

Elle est gardée sous la clé __EMPTY, puis __EMPTY_1 et __EMPTY_2 pour les suivantes : aucune valeur n’est perdue. Tapez d’abord un en-tête dans cette cellule si votre code a besoin d’un nom parlant.

Les pourcentages et les montants sont-ils gardés tels qu’ils s’affichent ?

Non, c’est le nombre enregistré qui est écrit : une cellule qui affiche 50 % donne 0.5, et une cellule qui affiche 9,99 € donne 9.99. Les cellules VRAI et FAUX deviennent true et false, et un nombre tapé dans une cellule au format Texte, comme 007, reste une chaîne.

Que deviennent les cellules fusionnées ?

La valeur va dans la première ligne de la zone fusionnée, et les autres lignes qu’elle couvre reçoivent null. Annulez d’abord la fusion et recopiez la valeur vers le bas dans Excel si chaque ligne en a besoin.

Que deviennent les erreurs de formule, comme #N/A ou #DIV/0!, dans le JSON ?

null, comme une cellule vide : le texte de l’erreur n’apparaît donc pas dans le JSON. Une formule enregistrée sans son résultat, comme dans un fichier écrit par openpyxl en Python et pas encore ouvert puis enregistré dans Excel, donne aussi null. Cherchez # dans la feuille avant de convertir si une erreur ne doit pas passer inaperçue.

Pourquoi les colonnes intitulées 2023 et 2024 arrivent-elles en premier dans chaque objet ?

JavaScript place d’abord les clés qui sont des nombres entiers, par ordre croissant, quel que soit l’ordre des colonnes : Region | 2023 | 2 024 s’écrit "2023", "2024", "Region". Les valeurs restent sous les bonnes clés ; seul leur ordre dans le fichier change. Renommez ces en-têtes, par exemple Exercice2024, si un programme dépend de l’ordre des clés.

Un en-tête comme user.name crée-t-il des objets imbriqués ?

Non. Chaque clé est le texte de l’en-tête tel qu’il a été tapé : user.name et user.age sont deux clés simples du même objet ligne. Les espaces sont gardées aussi : un en-tête tapé Name suivi d’une espace donne la clé "Name ", qu’un code qui cherche Name ne trouvera pas.

Les feuilles, lignes et colonnes masquées sont-elles incluses ?

Oui. Les feuilles masquées, les lignes masquées, les colonnes masquées et les lignes masquées par un filtre sont converties comme les autres. Supprimez-les d’abord dans le classeur si elles ne doivent pas figurer dans le JSON.

Que donne une feuille qui n’a qu’une ligne d’en-tête ?

Un tableau vide, comme une feuille vide : sans ligne de données en dessous, les noms des en-têtes ne sont écrits nulle part dans le JSON.

Puis-je obtenir du JSON minifié ou un tableau de tableaux ?

Pas sur cette page : le fichier est toujours un objet de tableaux de feuilles, indenté de deux espaces. Collez-le dans Minificateur JSON pour retirer les espaces. Pour un tableau de tableaux ou du JSON Lines, enregistrez la feuille avec Excel en CSV et convertissez ce fichier avec CSV en JSON.

Puis-je convertir un fichier Apple Numbers ?

Oui. Un fichier .numbers de Numbers 2013 ou plus récent, un fichier plus ancien de Numbers ’08 ou ’09, et un document Numbers enregistré comme dossier, une fois compressé en ZIP (Nom.numbers.zip), sont tous lus dans votre navigateur. Chaque tableau devient son propre tableau JSON, sous le nom de sa feuille. Quand une feuille contient plusieurs tableaux, un fichier de Numbers ’08 ou ’09 les nomme « feuille - tableau », et un fichier plus récent les nomme feuille, feuille_1, et ainsi de suite.

Quelle taille le fichier peut-il atteindre ?

90 Mo et 150 000 lignes, toutes feuilles comptées, sur un ordinateur ; 30 Mo et 50 000 lignes sur les téléphones et les tablettes. Divisez un classeur plus grand en plusieurs fichiers et convertissez-les un par un.

Trucs et astuces

  • ✓Avant de convertir, regardez la ligne d’en-tête : une espace finale ou un nom répété change les clés que verra votre code, et une année utilisée comme en-tête place cette clé en tête.
  • ✓Pour obtenir des fichiers CSV plutôt que du JSON, un par feuille, utilisez Excel en CSV.