Aller au contenu

BlogDonnées6 min de lecture

CSV, Excel ou JSON : quel format pour vos données ?

Nous avons enregistré le même tableau de 100 000 lignes en CSV, en classeur Excel et en JSON, puis comparé les poids, la vitesse de lecture dans du code et ce qui se passe mal avec les dates, les zéros initiaux et les longs nombres.

Trois fiches montrant les mêmes données en CSV, en feuille Excel et en JSON.

Les tableaux de données circulent entre les personnes et les programmes dans trois formats principaux : le CSV, les classeurs Excel (XLSX) et le JSON. Chacun est le choix naturel quelque part, et chacun cause un genre de problème bien connu quand il se retrouve au mauvais endroit. Pour les comparer à armes égales, nous avons enregistré un même tableau dans les trois formats, mesuré le poids et la vitesse de lecture, puis regardé ce que chaque format peut contenir ou non.

Le tableau de test

Le tableau contient 100 000 commandes avec sept colonnes : un numéro de commande, une date, un pays, un produit, une quantité, un prix unitaire et un total. Les premières lignes ressemblent à ceci en CSV :

order_id,date,country,product,quantity,unit_price,total
100000,2025-11-30,Brazil,Water bottle,6,158.35,950.1
100001,2025-02-25,France,Office chair,7,158.73,1111.11

et à ceci en JSON :

[
  {
    "order_id": 100000,
    "date": "2025-11-30",
    "country": "Brazil",
    "product": "Water bottle",
    "quantity": 6,
    "unit_price": 158.35,
    "total": 950.1
  },
  ...
]

Poids du fichier

Les mêmes 100 000 lignes dans chaque format
  • XLSXenregistré par Excel4,5 Mo
  • CSV5,0 Mo
  • JSONcompact12,4 Mo
  • JSONindenté17,0 Mo

Poids en mégaoctets (Mio). Le JSON répète chaque nom de colonne à chaque ligne, d’où un poids deux fois et demie celui du CSV.

Un fichier Excel est une archive ZIP de documents XML : il arrive donc déjà compressé, et Excel stocke chaque texte distinct une seule fois dans une liste partagée. C’est ce qui le rend un peu plus léger que le CSV ici. Le JSON est de loin le plus lourd : chaque ligne répète "order_id", "date" et les autres clés, et l’indentation ajoute plus d’un tiers par-dessus.

Le tableau change une fois les fichiers compressés, comme ils le sont pendant le transfert quand un serveur web les envoie avec gzip :

FormatPoidsAvec gzip
CSV5,03 Mo1,36 Mo
JSON, compact12,37 Mo1,63 Mo
JSON, indenté16,95 Mo1,72 Mo
XLSX, enregistré par Excel4,46 Modéjà compressé
Les clés répétées sont exactement ce que la compression élimine : le JSON compressé n’est qu’environ 20 % plus lourd que le CSV compressé.

Vitesse de lecture

Le poids compte moins qu’on ne le pense avec une connexion moderne. La vitesse à laquelle un programme retransforme le fichier en lignes compte davantage quand les données sont volumineuses. Nous avons relu chaque fichier avec les bibliothèques qu’utilisent nos outils de données, en prenant la médiane de cinq passages :

FormatLecture en lignesBibliothèque
JSON, compact0,12 sJSON.parse, intégré à JavaScript
CSV0,47 sPapa Parse
XLSX10,2 sSheetJS
Node.js sur un ordinateur de bureau. Microsoft Excel lui-même a ouvert le CSV en 1,5 s et le fichier XLSX en 2,1 s.

Le JSON gagne dans le code parce que chaque langage fournit un analyseur natif rapide et que les types sont inclus. Le CSV demande un analyseur qui gère les guillemets et convertit le texte en nombres. Hors d’Excel, le XLSX est de loin le plus lent : le programme doit décompresser le fichier, analyser un gros document XML et résoudre les textes partagés et les styles. Si un script ou une application web doit lire souvent de gros tableaux, le XLSX est le mauvais format à lui donner.

Ce que chaque format peut contenir

CSVXLSXJSON
Types de donnéesTexte seulementNombres, texte, dates, booléensNombres, texte, booléens, null
Plusieurs tableauxNon, un par fichierOui, en feuillesOui, en objets imbriqués
Données imbriquéesNonNonOui
Formules et mise en formeNonOuiNon
Limite de lignesAucune1 048 576 lignesAucune
Lisible dans un éditeur de texteOuiNonOui
S’ouvre dans ExcelOui, avec précautionOuiAvec Power Query ou un convertisseur

Là où le CSV déraille

Le CSV ressemble au format le plus simple, et c’est justement son absence de règles qui cause le plus de problèmes. Les mêmes soucis reviennent sans cesse :

  • Les zéros en tête disparaissent. Codes postaux, références produit et numéros de téléphone comme 02134 deviennent 2134 quand un tableur devine que ce sont des nombres.
  • Les longs nombres perdent des chiffres. Excel garde 15 chiffres significatifs : un numéro de carte ou de compte à 16 chiffres change discrètement son dernier chiffre.
  • Les dates sont réinterprétées. 03/04/2025 est le 3 avril dans la plupart du monde et le 4 mars aux États-Unis, et les tableurs convertissent ces valeurs à l’ouverture du fichier. Les dates ISO comme 2025-04-03 évitent les devinettes.
  • Le séparateur dépend du pays. Là où la virgule sert de séparateur décimal, comme en France ou en Allemagne, Excel attend des points-virgules entre les champs : un fichier séparé par des virgules s’ouvre alors en une seule longue colonne.
  • Les accents se changent en symboles. Excel ne lit correctement un CSV en UTF-8 que si le fichier commence par une marque d’ordre des octets (BOM). Sans elle, « Café » peut s’afficher « Café ».
  • Les virgules dans les valeurs doivent être entourées de guillemets, et les guillemets dans une valeur entre guillemets doublés. Le CSV fait à la main se trompe souvent.

Rien de tout cela n’arrive avec le XLSX ou le JSON, qui stockent les types explicitement. Avec le CSV, l’habitude la plus sûre est de l’ouvrir via l’écran d’importation d’Excel (Données, À partir d’un fichier texte/CSV), où vous pouvez fixer le type de chaque colonne, plutôt que de double-cliquer sur le fichier.

Lequel utiliser

  • Envoyer un tableau à une personne qui va le lire, le trier ou y ajouter des formules : le XLSX. Il garde les types et la mise en forme, et s’ouvre correctement partout où Excel, Google Sheets, Numbers ou LibreOffice est disponible.
  • Échanger des données entre systèmes, importer dans une base de données ou archiver des données brutes : le CSV, encodé en UTF-8, avec des dates ISO et une ligne d’en-tête. Il est universel, compact et restera lisible dans des décennies.
  • Des données pour une application web ou une API, ou tout ce qui a une structure imbriquée : le JSON. C’est le format natif de JavaScript et le plus rapide à lire dans du code.

Passer de l’un à l’autre est généralement la partie facile. Notre convertisseur Excel et CSV transforme les fichiers XLSX, XLS et ODS en CSV ou en JSON feuille par feuille et crée des fichiers Excel à partir de CSV, TSV ou JSON, la visionneuse CSV ouvre les gros fichiers CSV avec tri et filtres, et le convertisseur de données passe entre JSON, CSV, YAML et XML. Tous fonctionnent dans le navigateur : les données ne quittent jamais votre appareil.

Questions et réponses

Le CSV est-il plus léger qu’Excel ?

Dans notre test, un fichier Excel enregistré par Excel était un peu plus léger (4,5 Mo) que les mêmes données en CSV (5,0 Mo), car le XLSX est compressé en interne. Compressé, le CSV serait bien plus léger (environ 1,4 Mo avec gzip).

Pourquoi Excel retire-t-il les zéros au début de mes nombres ?

Excel devine que la colonne contient des nombres quand il ouvre un fichier CSV. Importez le fichier via Données, À partir d’un fichier texte/CSV et définissez cette colonne en Texte, ou gardez les données en XLSX.

Peut-on ouvrir du JSON dans Excel ?

Oui, avec Power Query (Données, Obtenir des données, À partir d’un fichier, À partir d’un fichier JSON), ou en le convertissant d’abord en CSV ou en XLSX. Les listes d’objets plates se convertissent proprement ; les données imbriquées doivent être aplaties en colonnes.

Combien de lignes Excel peut-il ouvrir ?

Une feuille Excel contient au plus 1 048 576 lignes et 16 384 colonnes. Les fichiers CSV plus gros ne s’ouvrent qu’en partie : utilisez une visionneuse qui lit le fichier en flux, ou découpez-le.

Les outils de cet article

À lire aussi sur le blog

Données6 min de lecture

ZIP, 7z ou RAR : quel format d’archive est le meilleur ?

Nous avons compressé les mêmes dossiers de photos, vidéos, documents et données en ZIP, 7z et RAR, puis mesuré le poids et la vitesse. Le gagnant dépend presque entièrement de ce qu’il y a dedans.

Données5 min de lecture

Correction d’erreur et taille des QR codes : L, M, Q et H testés

Une correction d’erreur plus forte permet à un QR code de survivre aux dégâts, mais le rend aussi plus dense. Nous avons généré des codes pour quatre contenus courants à chaque niveau et les avons couverts petit à petit jusqu’à ce qu’ils ne se lisent plus.

Données5 min de lecture

Les timestamps Unix expliqués

Un timestamp Unix n’est qu’un nombre de secondes, et pourtant il cause un flot régulier de bugs. Ce qu’il compte, comment reconnaître secondes et millisecondes d’un coup d’œil, ce qui se passe avec les fuseaux et les secondes intercalaires, et pourquoi 2038 compte.

Échap