FlowingDev

JSON vers Excel : Dompter les données d'API pour le commun des mortels

Découvrez les principes fondamentaux pour convertir des données JSON structurées, typiquement issues d'API, en une feuille de calcul Excel simple, lisible par un humain, pour vos analyses et vos rapports.

Essayer l'outil: JSON vers Excel

En une phrase

C'est un traducteur numérique qui prend une liste d'objets de données complexes et imbriqués (JSON) et les aplatit en une grille simple à deux dimensions (une feuille de calcul Excel) que n'importe qui peut lire.

Le problème que ça résout

Dans un coin du monde numérique, on a les développeurs, les API et les bases de données. Eux, ils parlent en JSON (JavaScript Object Notation), un langage magnifiquement structuré, léger et parfait pour que les machines s'échangent des informations. C'est la lingua franca des services web modernes.

Dans l'autre coin, on a les business analysts, les chefs de produit, les responsables marketing, et en gros une bonne partie du monde professionnel. Eux, leur langue, c'est le tableur. Excel, Google Sheets… ces outils sont l'interface universelle pour consulter des données. On peut trier, filtrer, créer des graphiques et faire des calculs sans écrire une seule ligne de code.

Le problème, c'est que ces deux mondes ne parlent pas la même langue. Un développeur récupère une liste de 10 000 nouveaux utilisateurs depuis une API et se retrouve avec un mur de texte glorieux, mais terrifiant, rempli d'accolades et de crochets. S'il envoie ce fichier JSON par e-mail à un responsable marketing qui lui a demandé ces données, c'est à peu près aussi utile que de lui filer le plan d'un moteur à distorsion. C'est techniquement correct, mais complètement illisible pour le public visé.

Historiquement, faire le pont entre ces deux mondes était une corvée manuelle pour un développeur. Pour chaque requête du style « Je peux avoir la liste de tous les produits vendus le trimestre dernier ? », un dev devait :

  1. Récupérer les données.
  2. Écrire un script personnalisé (en Python, Node.js, ou un autre langage).
  3. Se débrouiller pour gérer toutes les données imbriquées.
  4. Exporter le tout en fichier CSV ou Excel.
  5. Envoyer le fichier par e-mail.

Ce processus est lent, répétitif et détourne les développeurs de la création de vraies fonctionnalités. Un convertisseur JSON vers Excel automatise toute cette traduction, transformant une tâche de développement récurrente en une opération simple, à la demande et en libre-service.

Comment ça marche sous le capot

Transformer une structure JSON biscornue en une feuille de calcul plate comme une crêpe, ce n'est pas de la magie, mais ça implique quelques étapes astucieuses. Décortiquons tout ça.

Étape 1 : Parser le JSON

Tout d'abord, l'outil ne peut pas travailler avec le JSON en tant que simple chaîne de caractères brute. Il doit convertir ce texte en une structure de données qu'il peut réellement manipuler, comme un tableau d'objets natif en JavaScript. Cette étape s'appelle le parsing.

Pendant le parsing, l'outil joue aussi le rôle de videur, en vérifiant que l'entrée est valide. Il s'assure que le JSON est bien formé (pas de virgules manquantes ou de crochets mal fermés) et, pour ce travail spécifique, que la structure de haut niveau est un tableau d'objets. Un objet unique comme { "name": "Bob" } ne peut pas devenir une table, mais un tableau comme [{ "name": "Bob" }] peut devenir une table avec une seule ligne.

// Voici ce que l'outil reçoit : une chaîne de caractères.
'[{"id": 1, "user": {"name": "Alice"}}, {"id": 2, "user": {"name": "Bob"}}]'

// Après le parsing, ça devient une structure que le code peut utiliser.
// (Ceci est une représentation en JavaScript)
[
  { id: 1, user: { name: "Alice" } },
  { id: 2, user: { name: "Bob" } }
]

Étape 2 : L'art de l'aplatissement

C'est le cœur de toute l'opération. Une feuille de calcul est une grille bidimensionnelle : des lignes et des colonnes. Un objet JSON peut être multidimensionnel, avec des objets imbriqués dans d'autres objets. L'aplatissement (ou flattening) est le processus qui consiste à prendre cette structure imbriquée et à la représenter sur une seule dimension.

La technique la plus courante est de parcourir l'objet et de construire de nouvelles clés en joignant les clés parent et enfant avec un séparateur, comme un point (.) ou un tiret bas (_).

Prenons un seul objet de notre tableau :

{
  "orderId": "ORD-123",
  "customer": {
    "id": 87,
    "contact": {
      "name": "Charlie",
      "email": "charlie@example.com"
    }
  },
  "items": ["Laptop", "Mouse"],
  "shipped": true
}

Une fois aplati, il devient un objet simple à un seul niveau. Remarquez comment les clés imbriquées customer.id et customer.contact.email sont formées :

{
  "orderId": "ORD-123",
  "customer.id": 87,
  "customer.contact.name": "Charlie",
  "customer.contact.email": "charlie@example.com",
  "items": "Laptop, Mouse",  // Les tableaux demandent un traitement spécial !
  "shipped": true
}

Le tableau items a simplement été joint en une chaîne de caractères, avec les éléments séparés par une virgule. C'est une stratégie courante pour les tableaux simples de valeurs (chaînes de caractères ou nombres), car cela garde le résultat lisible.

Étape 3 : Découvrir les en-têtes et construire la grille

Une feuille de calcul a besoin d'une ligne d'en-tête. Mais que se passe-t-il si un objet dans votre JSON a un champ qu'un autre n'a pas ? C'est courant avec les schémas d'API flexibles.

[
  { "id": 1, "name": "Alice", "status": "active" },
  { "id": 2, "name": "Bob", "lastLogin": "2023-10-26" }
]

Un outil naïf pourrait se contenter de regarder le premier objet et décider que les en-têtes sont id, name et status. Il ignorerait alors complètement le champ lastLogin de Bob.

Un convertisseur robuste parcourt chaque objet du tableau, un par un, et collecte toutes les clés uniques qu'il trouve après aplatissement. Pour l'exemple ci-dessus, il découvrirait l'ensemble complet des en-têtes : id, name, status et lastLogin.

Une fois les en-têtes définis, l'outil peut construire la grille. Il crée une ligne pour chaque objet JSON et parcourt la liste des en-têtes. Pour chaque en-tête, il cherche la valeur correspondante dans l'objet aplati de cette ligne. Si la valeur existe, il la met dans la cellule. Si elle n'existe pas (comme lastLogin pour Alice ou status pour Bob), il laisse la cellule vide.

id name status lastLogin
1 Alice active
2 Bob 2023-10-26

Étape 4 : Assembler le fichier .xlsx

Vous avez votre grille d'en-têtes et de données. Et maintenant ? Vous ne pouvez pas simplement l'enregistrer en tant que fichier texte et le nommer .xlsx. Le format .xlsx (connu sous le nom d'Office Open XML) est étonnamment complexe. C'est en fait une archive ZIP contenant une collection de fichiers et de dossiers XML qui décrivent le contenu, la structure et le style du classeur.

Un bon outil de conversion JSON vers Excel utilise une bibliothèque spécialisée (comme SheetJS dans le monde JavaScript) pour gérer cette dernière étape. La bibliothèque prend la grille de données et génère par programmation tous les fichiers XML nécessaires (xl/worksheets/sheet1.xml, [Content_Types].xml, etc.), qui définissent les cellules, les lignes et les chaînes de caractères partagées. Elle empaquette ensuite le tout dans un unique fichier ZIP et lui donne l'extension .xlsx. Quand vous double-cliquez sur ce fichier, Excel sait exactement comment le dézipper et interpréter son contenu pour afficher la feuille de calcul que vous attendiez.

Histoires vécues

L'analyste marketing en panique

Sarah, une analyste marketing, devait déterminer quelles fonctionnalités du nouveau produit SaaS de son entreprise étaient les plus populaires. L'équipe d'ingénieurs lui a fourni un point d'accès API (endpoint) qui renvoyait un énorme tableau JSON d'activités utilisateur. C'était dense, imbriqué et totalement déroutant pour elle. Elle a demandé de l'aide à un développeur, mais il était débordé. Frustrée, elle a trouvé un outil web de conversion JSON vers Excel. Elle a collé le JSON, cliqué sur un bouton et téléchargé une feuille de calcul propre et organisée. En moins d'une heure, elle avait créé des tableaux croisés dynamiques et des graphiques montrant que le « tableau de bord de reporting » était un succès auprès des clients 'enterprise', mais que la « fonctionnalité de collaboration » n'était quasiment pas utilisée.

La leçon : Ces outils donnent aux membres non techniques de l'équipe l'autonomie nécessaire pour répondre à leurs propres besoins en données, ce qui permet d'économiser le temps des développeurs et d'accélérer l'obtention d'informations business.

Le développeur qui prototype une API

Alex était en train de construire une nouvelle API pour une plateforme d'e-commerce. Le chef de produit (Product Manager ou PM) voulait « voir les données » avant qu'Alex ne passe des semaines sur l'implémentation. Au lieu de monter un backend temporaire, Alex a simplement créé quelques objets JSON représentatifs de ce que l'API allait produire — y compris des infos client imbriquées, des articles de commande et des détails d'expédition. Il a passé ce JSON de test dans un convertisseur et a envoyé le fichier Excel résultant au PM. Le PM a immédiatement remarqué qu'il manquait item_price et que customer_address devrait être divisé en plusieurs champs. Ils ont détecté le défaut de conception en quelques minutes.

La leçon : Un convertisseur est un outil de communication et de prototypage fantastique, qui aide à aligner l'implémentation technique avec les exigences métier avant même qu'une seule ligne de code de production ne soit écrite.

Le casse-tête de la migration de données

Une petite entreprise était en train de fermer un ancien CRM développé sur mesure pour migrer vers une solution du marché. La seule option d'export de l'ancien système était un fichier JSON massif contenant toutes les fiches client. Le nouveau système, lui, ne pouvait importer des données que via Excel ou CSV. Le JSON était profondément imbriqué. Le développeur chargé de la tâche redoutait d'avoir à écrire un script de migration à usage unique — un travail de plusieurs jours pour un outil qui ne servirait qu'une seule fois. Au lieu de ça, il a divisé le JSON géant en morceaux gérables et a passé chacun d'eux dans un convertisseur. Il a ensuite combiné les fichiers Excel résultants, fait un peu de nettoyage mineur et a réussi à tout importer dans le nouveau CRM en moins d'une demi-journée.

La leçon : Pour les tâches de transformation de données ponctuelles, un convertisseur dédié peut être bien plus efficace que d'écrire et de déboguer des scripts personnalisés.

Erreurs courantes et pièges à éviter

  • Ignorer les types de données. Une conversion paresseuse pourrait tout transformer en chaînes de caractères dans Excel. Les nombres deviennent du texte ("123" au lieu de 123), ce qui fait échouer les sommes et les calculs. La valeur JSON null pourrait devenir la chaîne de caractères "null" au lieu d'une cellule vide. Un bon outil respecte les types, en mappant les nombres JSON sur les nombres Excel, les booléens sur VRAI/FAUX, et null sur des cellules vides.
  • Mal gérer les tableaux d'objets. On a vu comment un tableau de chaînes simples (["Laptop", "Mouse"]) peut être joint. Mais qu'en est-il d'un tableau d'objets, comme plusieurs adresses pour un même utilisateur ? Un mauvais outil pourrait simplement afficher "[object Object],[object Object]" dans la cellule, ce qui est inutilisable. De meilleurs outils pourraient créer des lignes en double (une pour chaque adresse) ou les éclater en colonnes numérotées (address_0_street, address_1_street), mais vous devez être conscient du comportement de l'outil que vous choisissez.
  • Oublier les objets incohérents. Si votre convertisseur n'inspecte que le premier objet du tableau pour déterminer les colonnes, vous perdrez des données. Assurez-vous toujours que l'outil scanne l'ensemble du jeu de données (dataset) pour construire une liste complète d'en-têtes avant de générer la feuille.
  • Lui donner une baleine à manger. Les outils web ont des limites de mémoire. Si vous essayez de coller un fichier de log JSON de 500 Mo dans un outil en ligne, votre navigateur va probablement planter lamentablement. Pour les ensembles de données vraiment massifs, un outil en ligne de commande ou un script dédié reste la meilleure approche.
  • Présumer de l'ordre des colonnes. L'ordre des clés dans un objet JSON n'est pas garanti par la spécification. Bien que la plupart des parseurs maintiennent aujourd'hui l'ordre source, vous ne devriez pas construire un workflow qui dépend de l'apparition des colonnes dans une séquence spécifique.

Pourquoi vous devriez vous y intéresser

Vous devriez penser à utiliser un convertisseur JSON vers Excel chaque fois qu'il y a un besoin de faire passer des données du monde des machines à celui des humains. C'est une pièce fondamentale de votre boîte à outils pour :

  • Partager rapidement les réponses d'API avec des collègues non techniques.
  • Prototyper et visualiser des structures de données pour de nouveaux projets.
  • Effectuer une analyse de données simple sans avoir à monter une base de données ou une plateforme de BI.
  • Gérer des tâches ponctuelles d'import/export de données entre des systèmes qui ne parlent pas la même langue.

Dès que vous entendez la phrase « Tu peux juste me sortir une liste de... », et que la source est un endpoint JSON, un convertisseur devrait être votre premier réflexe. C'est le raccourci ultime pour la démocratisation des données.

Pour aller plus loin

Théorie bouclée. Place à la pratique — 100 % dans ton navigateur.

Essayer l'outil: JSON vers Excel