Convertisseur Excel vers JSON
Téléchargez un fichier Excel pour convertir les données de feuille de calcul en format JSON
Glissez le fichier Excel ici, ou cliquez pour sélectionner
Qu'est-ce que Excel vers JSON ?
Excel vers JSON est un outil en ligne de conversion de format de données qui convertit les données de feuilles de calcul Microsoft Excel (.xlsx/.xls) en format JSON (JavaScript Object Notation).
Excel est le logiciel de feuilles de calcul le plus populaire au monde, largement utilisé pour le stockage de données, l'analyse et la création de rapports. JSON est le format d'échange de données le plus utilisé dans les applications Web modernes et les API, connu pour sa structure claire et sa facilité d'analyse.
Avec cet outil, vous pouvez convertir rapidement les données de feuilles de calcul Excel en tableaux JSON pour une utilisation en programmation, analyse de données et développement Web. Tout le traitement est effectué localement dans votre navigateur, garantissant la sécurité des données.
Comment utiliser
Comment utiliser
- Cliquez sur la zone de chargement ou glissez-déposez un fichier Excel (prend en charge les formats .xlsx et .xls)
- S'il y a plusieurs feuilles, sélectionnez celle à convertir dans le menu déroulant
- Choisissez si la première ligne doit être utilisée comme noms de champs des objets JSON
- Les données JSON formatées sont générées automatiquement, prêtes à copier
Notes sur les feuilles de calcul
- Vérifiez la feuille sélectionnée, la ligne d'en-tête, les cellules fusionnées, les lignes vides et les formats de date avant d'utiliser le JSON.
- Les feuilles de calcul mélangent souvent le formatage d'affichage avec les valeurs brutes, vérifiez donc les nombres et les dates après la conversion.
Cas d’utilisation
Principe technique
Les classeurs .xlsx modernes sont des fichiers SpreadsheetML définis par ECMA-376 / ISO/IEC 29500 (la norme Office Open XML) : l'extension .xlsx est un conteneur ZIP dont les entrées sont des documents XML sous xl/worksheets/sheetN.xml, avec les chaînes stockées dans une table de chaînes partagées xl/sharedStrings.xml et les types de cellules déclarés par l'attribut t (s = sharedString, n = number, b = boolean, str = chaîne inline, d = date en ISO 8601). La page lit le fichier téléchargé avec FileReader.readAsArrayBuffer, puis transmet l'ArrayBuffer à SheetJS (xlsx). XLSX.read(buffer, {type: 'array'}) renvoie un objet classeur dont le tableau SheetNames pilite le sélecteur de feuille, et XLSX.utils.sheet_to_json(sheet, options) parcourt la grille de cellules pour produire soit un tableau d'objets (avec la ligne d'en-tête comme clés) soit un tableau de tableaux lorsque header: 1 est passé. Le format .xls hérité est le format binaire BIFF8 (Excel 97-2003), que SheetJS décode également via le même point d'entrée read() mais avec type: 'binary' pour FileReader.readAsBinaryString ou 'array' pour une lecture en octets. Les valeurs de date des cellules dans les deux formats sont stockées comme des numéros de série (jours depuis l'époque 1900 dans Excel, avec le bug historique d'année bissextile du 29/02/1900 qui décale les dates avant le 01/03/1900 d'un jour, ou jours depuis le 01/01/1904 lorsque le drapeau date1904 du classeur est activé sur Excel pour Mac). La conversion en objet JavaScript Date est (série - 25569) * 86400 * 1000 millisecondes après l'époque Unix pour le système 1900 une fois le bug d'année bissextile pris en compte. Les formules résident dans l'attribut f et SheetJS rapporte leur dernier résultat mis en cache dans v ; si le classeur a été sauvegardé par un outil n'ayant pas recalculé (par ex. certains exports scriptés), v peut être manquant ou obsolète. Lorsque la première ligne est utilisée comme en-têtes, des cellules d'en-tête dupliquées ou vides obligent SheetJS à ignorer ou renommer automatiquement les clés (par ex. __EMPTY, __EMPTY_1), ce qui casse les contrats JSON en aval. Les plages de cellules fusionnées (déclarées dans worksheet/mergeCells) n'exposent la valeur qu'à l'ancrage supérieur gauche et émettent undefined dans les cellules de queue fusionnées, donc une ligne de titre fusionnée produit un enregistrement peuplé suivi de N - 1 enregistrements épars. Pour les classeurs de plusieurs dizaines de mégaoctets, le chemin synchrone XLSX.read() peut bloquer le thread UI ; l'alternative en flux est de déplacer l'analyse dans un Web Worker pour que le thread principal reste réactif.
- .xlsx est un conteneur ZIP de XML (ECMA-376 / ISO/IEC 29500) ; .xls est le format binaire BIFF8 ; SheetJS XLSX.read(buffer, {type: 'array'}) gère les deux via FileReader.readAsArrayBuffer.
- Options de sheet_to_json : header: 1 renvoie un tableau de tableaux ; header: 'A' utilise les lettres de colonnes du tableur ; defval: null remplit les cellules éparses avec null au lieu de supprimer la clé ; raw: false applique le formatage d'affichage Excel.
- Le numéro de série de date Excel est le nombre de jours depuis le 01/01/1900 (avec le bug d'année bissextile du 29/02/1900 ; pour le système de dates Mac 1904, jours depuis le 01/01/1904) ; Date JS en ms = (série - 25569) * 86400000 après l'époque Unix.
- Les cellules d'en-tête dupliquées ou vides deviennent des clés renommées automatiquement (__EMPTY, __EMPTY_1) ou entrent en collision silencieusement ; validez le JSON pour ces chaînes avant de vous fier au schéma.
- Les plages de cellules fusionnées (worksheet.mergeCells) n'exposent la valeur qu'à l'ancrage supérieur gauche ; les cellules de queue de la fusion sont undefined, donc une ligne de titre fusionnée produit un enregistrement avec la valeur et N-1 enregistrements avec des champs vides.
- Les cellules de formule stockent l'expression dans f et le dernier résultat mis en cache dans v ; les outils qui sauvegardent sans recalculer laissent v obsolète ou manquant, et SheetJS renvoie v tel quel.
- Déplacez XLSX.read dans un Web Worker pour les classeurs au-delà de ~10 Mo ; le chemin d'analyse synchrone bloque requestAnimationFrame et peut geler l'onglet pendant plusieurs secondes sur les grandes feuilles.
Exemples
Feuille d'employés vers tableau d'objets JSON
Lignes Excel (feuille Staff) :
id | name | dept | salary
1 | Alice | Engineering| 8500
2 | Bob | Sales | 6200
Sortie JSON :
[
{ "id": 1, "name": "Alice", "dept": "Engineering", "salary": 8500 },
{ "id": 2, "name": "Bob", "dept": "Sales", "salary": 6200 }
]Classeur multi-feuilles (orders.xlsx)
Feuilles du classeur : ["Customers", "Orders", "Products"]
Feuille sélectionnée : Orders
Première ligne utilisée comme en-têtes : order_id, customer_id, total, date
Résultat : 1 284 lignes converties en objets JSON
Les cellules vides en fin de ligne deviennent null, et non chaîne videCellule de date Excel vers chaîne ISO 8601
Cellule A2 (formatée comme Date dans Excel) : 46173 (numéro de série Excel)
Affiché dans Excel : 2026-06-01
Sortie JSON :
{ "order_date": "2026-06-01T00:00:00.000Z" }
Note : Excel stocke les dates sous forme de numéros de série ; cet outil les normalise en chaînes ISOEn-têtes avec espaces et caractères chinois
Ligne d'en-tête : "Order No." | "客户姓名" | "金额 (USD)"
Les clés JSON sont conservées telles quelles :
{
"Order No.": "A-1024",
"客户姓名": "王小明",
"金额 (USD)": 199.50
}FAQ
Mon fichier Excel est-il téléversé ?
Non. Le fichier .xlsx, .xls ou .csv est analysé dans votre navigateur via SheetJS. Les octets ne quittent jamais votre appareil. Vous pouvez le confirmer en consultant l'onglet Network pendant le chargement d'un fichier.
Quelles fonctionnalités Excel survivent à la conversion ?
Les valeurs de cellules, les dates (sous forme de chaînes ISO ou de numéros de série Excel selon l'option), les nombres, les booléens et le texte. Graphiques, images, mises en forme conditionnelles, formules (la valeur mise en cache est conservée, pas la formule), commentaires et cellules fusionnées sont supprimés ou simplifiés.
Toutes les feuilles sont-elles converties ?
Seule la feuille sélectionnée est convertie. Utilisez la liste déroulante des feuilles pour choisir celle à exporter. Si vous avez besoin de plusieurs feuilles, convertissez-les une par une.
Comment les en-têtes et les lignes sont-ils projetés en JSON ?
Si « première ligne en en-tête » est activé, le résultat est un tableau d'objets dont les clés sont les cellules d'en-tête. Désactivé → un tableau de tableaux de valeurs de cellules. Les cellules vides deviennent null dans la sortie.
Comment les dates sont-elles gérées ?
Excel stocke les dates sous forme de numéros de série (jours depuis 1900). La page les convertit par défaut en chaînes ISO 8601 (2026-06-13). Passez en mode « brut » pour conserver le numéro de série, utile pour réimporter ensuite dans Excel. Les cellules d'heures seules deviennent des chaînes du type « T14:30:00 ».
Et les formules ?
Les formules ne sont pas évaluées ; seule la valeur calculée mise en cache (la dernière sauvegardée par Excel) est utilisée. Si vous avez besoin de résultats de formules à jour, ouvrez le fichier dans Excel, recalculez (F9), enregistrez, puis téléversez à nouveau.
Quelle est la limite de taille de fichier ?
La mémoire du navigateur la dicte. Les ordinateurs récents avalent des classeurs jusqu'à plusieurs centaines de Mo. Pour des fichiers très volumineux (> 1 M lignes), utilisez plutôt un outil de scripting bureau (Python pandas, Excel Power Query) — le navigateur manquera de mémoire.