Convertir XLSX en JSON

Vous pouvez convertir XLSX en JSON gratuitement et sans compte : déposez le fichier ci-dessus et, une ou deux secondes plus tard, le résultat est prêt à télécharger. La conversion se fait dans votre propre navigateur : le fichier n’est donc jamais téléversé. Cela marche sous Windows, macOS et Linux comme sur iPhone et Android, et continue de marcher si vous coupez le réseau.

  • Où cela s’exécute Dans votre navigateur. Le fichier n’est pas téléversé.
  • Reconstruit JSON ne fonctionne pas comme XLSX. Il ne s’agit donc pas de la dégradation progressive d’un codec avec perte : ce que JSON sait exprimer est reproduit fidèlement, et ce qui n’y a pas d’équivalent ne subsiste pas du tout.
  • Limite de taille Jusqu’à 100 Mo par fichier, gratuitement et sans compte.
  • Bon à savoir Seule la première feuille est lue, et seulement ses valeurs. Formules, mise en forme, largeurs de colonnes et toutes les feuilles suivantes restent de côté.

Jusqu’à 100 fichiers à la fois. Les formats mélangés ne posent pas de problème.

Le classeur est l’interface que personne n’a dessinée

Cette conversion existe à cause d’un motif qui se répète dans toute organisation : la version de référence de quelque chose — une liste de prix, un catalogue de produits, une table de traductions, des horaires d’ouverture, un mapping de codes vers des noms — vit dans un tableur tenu par quelqu’un qui n’est pas développeur, et elle doit rejoindre un programme qui attend des données.

C’est une disposition tout à fait raisonnable. Un tableur est une bonne interface d’édition, les utilisateurs métier la connaissent déjà, et construire un petit outil d’administration pour la remplacer vaut rarement l’effort. Ce qu’il faut, c’est une conversion fiable à la frontière, et c’est précisément le travail de cette page.

Une grille devient un tableau d’objets

Le mappage est celui qui vient naturellement. La première ligne est traitée comme l’en-tête et fournit les noms de clés ; chaque ligne suivante devient un objet ; chaque cellule devient une valeur sur cet objet. Le résultat est un tableau d’enregistrements, qui est la forme qu’un programme qui consomme attend presque toujours.

Cela vaut la peine de réfléchir à la ligne d’en-tête de manière délibérée, parce que ces cellules deviennent des noms de clés dans votre code. Courts, en minuscules, sans espace ni ponctuation — c’est ce qui rend les clés agréables à manipuler ; un en-tête qui se lit « Prix unitaire (€, HT) » produit quelque chose que personne n’a envie de taper deux fois.

Les dates sont la première chose qui se passe mal

Un tableur ne stocke pas les dates comme des dates. Il stocke un nombre qui compte les jours depuis une origine, et la mise en forme de la cellule est ce qui fait que 45678 ressemble à une date à l’écran. La conversion rend ce qui est réellement dans le fichier, c’est-à-dire le nombre.

Les deux façons de contourner le problème sont également délibérées. Formatez la colonne en texte dans le tableur et tapez-y des dates ISO, ce qui rend le fichier auto-descriptif et survit à toute conversion. Ou bien transformez les valeurs après la conversion, en appliquant vous-même l’arithmétique du nombre de jours. Les deux conviennent ; découvrir le problème après que les données ont atteint la production, non.

Les zéros initiaux et les longs identifiants ont disparu avant que vous commenciez

Un code postal, un code produit, un code banque ou un identifiant national stocké dans une cellule formatée comme un nombre a déjà perdu ses zéros initiaux — Excel l’a fait au moment où la valeur a été tapée ou importée, et le fichier contient un nombre.

Pareil pour les identifiants au-delà de quinze chiffres, qui perdent leurs derniers chiffres à cause de la virgule flottante dans le tableur lui-même. Aucun convertisseur ne peut restaurer l’un ou l’autre, parce que l’information n’est pas dans le fichier. La correction se fait en amont : ces colonnes doivent être formatées en texte dans le tableur, et cela vaut le coup de le dire une fois à la personne qui le tient plutôt que de réparer la sortie tous les mois.

Ce que le tableur a et que le JSON n’a pas

Les formules, dont vous obtenez les résultats — ce que vous vouliez, puisqu’un programme n’a rien à faire d’une formule. La mise en forme, les couleurs, les règles conditionnelles et les largeurs de colonnes, qui ne sont pas des données. Les graphiques, les commentaires et les cellules fusionnées, qui n’ont pas d’équivalent.

Les cellules fusionnées sont celui qui mérite l’attention. Un en-tête fusionné qui couvre trois colonnes est un artifice de présentation, et il produit un objet avec une clé et deux vides — ce qui donne un enregistrement à l’allure étrange né d’une feuille parfaitement sensée. Des en-têtes à plat, une cellule par colonne, sont ce qui rend cette conversion ennuyeuse, et ennuyeux est l’objectif.

Sa place dans un build

L’arrangement courant est de garder le tableur comme source éditable, convertir en JSON comme une étape, et valider le JSON en même temps que le code. Les données sont alors révisables dans une pull request, versionnées, et disponibles au moment du build sans aucune dépendance à l’exécution sur un fichier que quelqu’un pourrait déplacer.

Deux habitudes font que cela tient dans le temps. Convertissez toujours de la même manière pour qu’un diff montre de vrais changements plutôt qu’un réordonnancement. Et validez le résultat contre un schéma avant de le valider, pour qu’une colonne renommée par un collègue bien intentionné fasse échouer un test plutôt que de produire en silence des objets avec un champ manquant.

Quand le CSV est la meilleure cible

Si la destination est un import de base de données, un outil d’analyse ou un pipeline de données, le CSV est en général le meilleur intermédiaire : il se stream, tous les systèmes le lisent, et il n’impose pas de structure d’imbrication à des données qui n’en ont pas.

Le JSON trouve sa place quand les données vont dans du code applicatif — un front end, un fichier de configuration, une fixture d’API — où un tableau d’objets est ce que le langage attend et où l’analyse tient en une ligne. Choisissez en fonction de ce qui lira le fichier, pas en fonction de ce qui semble le plus moderne.

Le fichier reste sur votre machine

La conversion tourne dans l’onglet du navigateur sur votre propre processeur, donc rien n’est téléversé et aucun serveur ne garde de copie. Il n’y a pas de compte, pas de file et pas de quota journalier ; la limite de taille est de 100 Mo par fichier, cent fichiers par dépôt.

Ce n’est pas anecdotique ici. Les tableurs que les gens convertissent sont internes : prix, marges, listes de clients, dossiers du personnel, catalogues non publiés. Ne les envoyer nulle part est la forme la plus simple de ne pas avoir à faire confiance à qui que ce soit avec eux.

Comment convertir XLSX en JSON

  1. Déposez votre fichier XLSX sur cette page, ou cliquez pour en choisir un.
  2. Choisissez JSON comme destination. La conversion se fait dans votre navigateur et le fichier n’est pas téléversé.
  3. Téléchargez le fichier JSON terminé.

XLSX et JSON : ce qui change

XLSX face à JSON
XLSXJSON
Nom completClasseur ExcelJavaScript Object Notation
Extension de fichier.xlsx.json
Type de médiaapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/json
Première publication20072001
Publié parMicrosoft
SpécificationECMA-376RFC 8259
LicenceStandard ouvertStandard ouvert
Situation actuelleActuelActuel
S’ouvre dans un navigateurAucun navigateurTous les navigateurs
Envisagé à la placeCSV, ODS, ParquetXML, YAML, NDJSON

Ouvrir le résultat

JSON s’ouvre dans tous les navigateurs actuels. XLSX va encore moins loin. Si le fichier part sur une page web ou dans un formulaire, c’est souvent toute la raison de la conversion.

Les logiciels habituels ne se recoupent pas : XLSX s’ouvre dans Microsoft Excel, LibreOffice Calc et Google Sheets, JSON dans Visual Studio Code, jq et Postman — celui qui reçoit le résultat a donc besoin d’un logiciel de la seconde liste.

À quoi sert chaque format

Les deux visent des usages différents : XLSX la retouche, JSON l’échange entre programmes et le web. Cela mérite d’être pesé avant, car ce qui justifie l’un est souvent ce qui rend l’autre malcommode.

XLSX est le format de Microsoft, publié en 2007. La spécification est ECMA-376, et elle mérite d’être connue si le fichier doit survivre à l’outil qui l’a écrit.

JSON date de 2001, décrit par RFC 8259. Visual Studio Code, jq et Postman le lisent.

De XLSX à JSON : questions fréquentes

Mon fichier XLSX est-il téléversé quelque part ?

Non. Cette conversion se fait entièrement dans votre navigateur : le fichier ne quitte donc pas votre appareil. Vous pouvez le vérifier vous-même — ouvrez l’onglet réseau des outils de développement et convertissez quelque chose. Vous verrez la page elle-même et les requêtes de statistiques et de publicité qui financent ce service, et pas une seule qui transporte votre fichier. Le moteur de cette paire précise est SheetJS, un lecteur et générateur de tableurs en JavaScript ; votre navigateur le télécharge une fois puis le garde en cache.

Convertir XLSX en JSON est-il gratuit ?

Oui. Pas de compte, pas de filigrane et pas de quota journalier à dépenser : cela tourne sur votre propre machine, vous pouvez donc revenir autant de fois que vous voulez. Le navigateur traite des fichiers jusqu’à 100 Mo, 100 à la fois. SheetJS est téléchargé sur votre machine et s’y exécute, et c’est pourquoi rien n’est compté.

Y a-t-il une perte de qualité en convertissant XLSX en JSON ?

XLSX et JSON décrivent le contenu de façons radicalement différentes. La conversion est donc une reconstitution et non une copie : fidèle, mais pas identique octet pour octet. Seule la première feuille est lue, et seulement ses valeurs. Formules, mise en forme, largeurs de colonnes et toutes les feuilles suivantes restent de côté.

Dois-je installer quelque chose pour ouvrir un fichier JSON ?

Pas pour la conversion : elle se fait dans le navigateur que vous avez déjà ouvert. Pour ouvrir le résultat, il vous faut ensuite le logiciel avec lequel votre appareil affiche habituellement JavaScript Object Notation.

En savoir plus sur ces formats