Tableau CSV (.csv)
RFC StandardLes 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 :
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 fixeREPRÉSENTATION ASCII : Octets de texte ; encodage variable (souvent UTF-8)
Normalisation : RFC 4180 / IETF
Spécifications techniques
| Architecture de conteneur | Fichier texte brut délimité représentant des lignes et des colonnes de données tabulaires |
| Compression | Gzip / Deflate permettent de compresser de 85 % à 95 % les enregistrements tabulaires répétitifs |
| Ordre des octets | Flux de texte UTF-8 (marque d’ordre des octets UTF-8 facultative : EF BB BF, utilisée par Excel) |
| Espaces colorimétriques | Non applicable |
| Canaux et structure | Enregistrements de lignes délimités par CRLF avec des colonnes délimitées par des virgules |
| Dimensions maximales | Sans limite ; traitement en continu possible sur plusieurs gigaoctets sans charger le fichier entier en mémoire |
| Transparence | Non applicable |
| Prise en charge du traitement en continu | Traitement 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 technique | CSV (Actuel) | Excel (XLSX) | Parquet | JSON |
|---|---|---|---|---|
| Type de fichier | Table plate en texte brut | Tableur XML compressé en ZIP | Stockage colonnaire binaire | Texte hiérarchique |
| Feuilles multiples | Non (table plate unique uniquement) | Oui (plusieurs classeurs et feuilles) | Stockage basé sur des partitions | Tableaux et objets imbriqués |
| Types de données | Texte brut non typé | Cellules typées, formules et mise en forme | Types de colonnes binaires stricts | Types primitifs (chaîne, nombre, booléen) |
| Analytique Big Data | Lent (nécessite la lecture linéaire de chaque ligne) | Ne convient pas au Big Data | Ultra-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
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.
Conversions associées à CSV
La conversion d'une feuille Excel en tableau CSV extrait les données tabulaires brutes dans un format texte universel pour une compatibilité logicielle maximale.
La conversion de fichiers CSV textuels simples en feuilles de calcul XLSX dotées de nombreuses fonctionnalités permet une mise en forme avancée des données, l'utilisation de formules et de plusieurs feuilles.
La conversion de fichiers texte plats en bases de données relationnelles structurées permet d'exécuter des requêtes rapides et de gérer des relations de données complexes.
Transformez les scripts de sauvegarde de bases de données relationnelles en feuilles de calcul en tableaux simples pour une analyse de données et des rapports simplifiés.
La conversion de jeux de données HDF5 hiérarchiques en fichiers CSV de télémétrie à plat transforme des enregistrements scientifiques multidimensionnels complexes en lignes et colonnes simples pour leur analyse dans un tableur.
Les fichiers NetCDF permettent de stocker des données scientifiques multidimensionnelles ; leur conversion en CSV les rend exploitables dans un tableur simple ou un outil de traçage.
La conversion de fichiers vCard en fichiers CSV de contacts transforme des fiches de contact hiérarchiques en lignes de tableur pour faciliter leur importation dans des bases de données.