Tableau CSV (.csv)

RFC Standard

Les valeurs séparées par des virgules (CSV) constituent un format de texte brut omniprésent pour les données tabulaires, où chaque ligne représente un enregistrement de données et les champs sont séparés par des caractères délimiteurs.

Convertir XLSX en CSV

Outil de conversion gratuit de XLSX vers CSV dans le navigateur. Convertissez des fichiers instantanément sur votre appareil.

Compresser des fichiers CSV en ligne

Privé - les fichiers ne quittent jamais votre appareil

Inspection et métadonnées

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers CSV en inspectant leur séquence initiale d'octets binaires :

Sélectionnez ou déposez des fichiers ici

Privé - les fichiers ne quittent jamais votre appareil

ou coller Ctrl+V
Garantie de confidentialité sans transmission réseau : 0 octet envoyé vers des serveurs externes. Tout le traitement a eu lieu localement dans le bac à sable de votre navigateur.

Signature d'en-tête au niveau des octets (octets magiques)

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers CSV en inspectant leur séquence initiale d'octets binaires :

SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :

Aucune signature fixe

REPRÉSENTATION ASCII : Octets de texte ; encodage variable (souvent UTF-8)

Normalisation : RFC 4180 / IETF

Spécifications techniques

Architecture de conteneurFichier texte brut délimité représentant des lignes et des colonnes de données tabulaires
CompressionGzip / Deflate permettent de compresser de 85 % à 95 % les enregistrements tabulaires répétitifs
Ordre des octetsFlux de texte UTF-8 (marque d’ordre des octets UTF-8 facultative : EF BB BF, utilisée par Excel)
Espaces colorimétriquesNon applicable
Canaux et structureEnregistrements de lignes délimités par CRLF avec des colonnes délimitées par des virgules
Dimensions maximalesSans limite ; traitement en continu possible sur plusieurs gigaoctets sans charger le fichier entier en mémoire
TransparenceNon applicable
Prise en charge du traitement en continuTraitement natif des données en continu, ligne par ligne, pris en charge par tous les pipelines de données

Matrice de comparaison technique : CSV face aux concurrents

Attribut techniqueCSV (Actuel)Excel (XLSX)ParquetJSON
Type de fichierTable plate en texte brutTableur XML compressé en ZIPStockage colonnaire binaireTexte hiérarchique
Feuilles multiplesNon (table plate unique uniquement)Oui (plusieurs classeurs et feuilles)Stockage basé sur des partitionsTableaux et objets imbriqués
Types de donnéesTexte brut non typéCellules typées, formules et mise en formeTypes de colonnes binaires strictsTypes primitifs (chaîne, nombre, booléen)
Analytique Big DataLent (nécessite la lecture linéaire de chaque ligne)Ne convient pas au Big DataUltra-rapide (élagage des colonnes et propagation des prédicats)Modéré

Modes de corruption courants et guide de restauration hexadécimale

Les colonnes se décalent vers la droite ou les nombres de lignes ne correspondent pas.

Cause initiale: Un champ de texte contenant une virgule non échappée sans guillemets environnants.

Récupération: La RFC 4180 exige que les champs contenant des virgules soient entourés de guillemets doubles : "Smith, John".

Les caractères accentués s'affichent sous forme de symboles étranges (mojibake comme é au lieu de é) dans Excel.

Cause initiale: Excel a ouvert un fichier CSV UTF-8 en supposant l'encodage de caractères Windows ANSI/CP1252 hérité.

Récupération: Ajoutez au début du fichier la marque d’ordre des octets UTF-8 (0xEF 0xBB 0xBF), longue de 3 octets.

Analyse de sécurité et vecteurs d'attaque de l'analyseur

Les fichiers CSV s'ouvrent directement dans des logiciels de tableur tels qu'Excel et Google Sheets, exposant les utilisateurs à des attaques par injection de formules (injection CSV).

Vecteurs d’attaque connus

  • Injection de formules : les cellules commençant par '=', '+', '-' ou '@' exécutent des macros de tableur ou des commandes DDE (par exemple '=cmd|' /C calc'!A0').
  • Exfiltration de données via des formules HYPERLINK() envoyant des données de cellules sensibles vers des serveurs distants contrôlés par un attaquant lors d'un clic.

Bonnes pratiques de défense: Lors de l'exportation de données utilisateur vers un fichier CSV, ajoutez un guillemet simple (') ou une tabulation au début de toute cellule commençant par '=', '+', '-' ou '@' pour forcer un rendu en texte brut dans Excel.

Origines historiques et jalons

2015Le modèle W3C pour les données tabulaires et les métadonnées sur le Web standardise le CSV sur le Web (CSVW) avec des descripteurs de métadonnées JSON-LD.
2005L'IETF publie la RFC 4180, établissant la spécification formelle des fichiers CSV.
1972Le compilateur IBM Fortran (H Extended) implémente les entrées/sorties délimitées par des virgules.

Principaux avantages

  • Simplicité maximale : lisible dans n'importe quel éditeur de texte et importable dans toutes les bases de données et tableurs.
  • Parcours ligne par ligne très rapide, sans construire un DOM complet en mémoire.
  • Surcharge minimale : pas de syntaxe de balise verbeuse ni de définitions de schéma.

Limites techniques

  • Aucun type de données standard : les nombres, les dates, les booléens et le texte sont tous stockés sous forme de chaînes brutes.
  • Aucune prise en charge des feuilles multiples, du formatage des cellules, des formules ou des métadonnées.
  • Les conflits de délimiteurs (virgules dans le texte, virgules décimales dans les paramètres régionaux européens) provoquent souvent des erreurs d’analyse.

Faits intéressants

  • Dans de nombreux pays européens où les virgules sont utilisées comme séparateurs décimaux, les points-virgules (;) sont utilisés à la place des virgules comme séparateurs CSV.
  • Historiquement, Microsoft Excel exigeait un BOM UTF-8 (0xEF 0xBB 0xBF) pour afficher correctement les caractères accentués non-ASCII.
  • Le National Health Service (NHS) du Royaume-Uni a perdu près de 16 000 dossiers de suivi des contacts liés au COVID-19 en 2020, après leur importation dans un ancien format de tableur Excel limité à 65 536 lignes.

Foire aux questions techniques

Qu'est-ce que la RFC 4180 ?

La RFC 4180 est la norme IETF officielle pour le format CSV. Elle impose que les champs contenant des virgules, des sauts de ligne ou des guillemets doubles soient encadrés par des guillemets doubles, et que les guillemets internes soient échappés en les doublant ("").

Pourquoi les fichiers CSV s'ouvrent-ils avec des caractères corrompus dans Excel ?

Les versions antérieures de Microsoft Excel utilisent par défaut la page de codes Windows locale (telle que Windows-1252) plutôt que l'UTF-8 lors de l'ouverture directe des fichiers CSV. L'ajout d'un BOM UTF-8 (repère d'ordre des octets) au début du fichier force Excel à décoder correctement l'UTF-8.

Qu'est-ce que l'injection CSV (injection de formules) ?

L'injection CSV se produit lorsque des saisies utilisateur non fiables contenant des déclencheurs de formules de début ('=', '+', '-', '@') sont exportées vers un fichier de tableur. Lorsqu'il est ouvert dans un logiciel tel qu'Excel, le tableur exécute automatiquement la formule ou la commande DDE (Dynamic Data Exchange), ce qui peut exécuter des commandes système ou exfiltrer des données.