Qu'est-ce que le format de fichier CSV ?
.csv est un format de fichier qui stocke différents types de données dans des ensembles de texte séparés par des caractères, le plus souvent une virgule - d'où le nom Comma-Separated Values. Le format est documenté dans la RFC 4180 (2005), un standard minimal mais largement adopté. Les enregistrements de données sont séparés par un caractère de nouvelle ligne, tandis que les valeurs de champs individuelles sont couramment entourées de guillemets doubles. Pour inclure un guillemet double littéral à l'intérieur d'un champ, il est écrit deux fois comme "".
La première ligne d'un fichier .csv contient conventionnellement les noms de colonnes (une ligne d'en-tête), bien que la spécification CSV n'impose pas sa structure. Les champs d'enregistrement peuvent être séparés par :
- Des virgules,
- Des points-virgules,
- Des tabulations (voir .TSV),
- D'autres caractères - utilisés de manière cohérente dans tout le document.
Les fichiers .csv sont utilisés pour stocker, importer et exporter des données dans un format bien défini et indépendant de la plateforme que n'importe quel éditeur de texte peut ouvrir. Comme le choix du séparateur est libre, cela peut parfois causer des problèmes lors de la conversion ; par conséquent, les assistants d'importation de données doivent offrir une option pour configurer le séparateur à utiliser, comme c'est le cas avec les applications de tableur telles que Microsoft Excel et LibreOffice Calc.
Le format .csv ne comporte pas de signature de fichier (magic bytes) et est identifié par sa structure plutôt que par son contenu. Un fichier peut éventuellement commencer par une marque d'ordre d'octets UTF-8 (EF BB BF), qu'Excel écrit automatiquement pour signaler l'encodage. La plupart des langages de programmation fournissent des bibliothèques dédiées pour importer et gérer les fichiers .csv de manière fiable, ce qui en fait l'un des formats d'échange de données les plus universels utilisés aujourd'hui.
Sécurité et sûreté
RISQUE : MEDIUMLe CSV est du texte brut et ne peut pas exécuter de code par lui-même, mais il comporte un risque réel : l'injection CSV (injection de formule). Si une cellule commence par =, +, - ou @, un tableur peut l'exécuter comme une formule à l'ouverture - les attaquants exploitent cela dans les CSV exportés pour exécuter des commandes ou voler des données. Les versions modernes d'Excel/LibreOffice avertissent avant d'exécuter de telles formules ; ne les activez pas dans des fichiers provenant de sources non fiables. Le « risque » quotidien est la corruption des données, pas les logiciels malveillants : un mauvais encodage ou délimiteur altérant silencieusement les nombres, les dates et les zéros non significatifs (ex: codes postaux et numéros de téléphone perdant leur 0 initial).
Détails du format
en brefProgrammes qui ouvrent les fichiers CSV
Détails techniques
spécifications approfondies| Type MIME | text/csv |
| Structure du fichier | Texte brut ; lignes délimitées par des fins de ligne, champs délimités par un caractère séparateur choisi |
| Délimiteur par défaut | Virgule (`,`) ; les points-virgules et les tabulations sont également des variantes largement utilisées |
| Fin de ligne (RFC 4180) | CRLF (`\r\n` selon la spécification) ; LF seul (`\n`) est largement accepté en pratique |
| Caractère de citation de champ | Guillemet double (`"`) ; doublé (`""`) pour échapper un guillemet littéral dans un champ |
| Ligne d'en-tête | Première ligne facultative listant conventionnellement les noms de colonnes ; la RFC 4180 laisse la structure de l'en-tête indéfinie |
| Signature de fichier (magic bytes) | Aucune ; identifié par la structure. Un BOM UTF-8 facultatif (`EF BB BF`) peut apparaître au début du fichier |
| Prise en charge des champs multilignes | Pris en charge lorsque le contenu du champ est entouré de guillemets doubles |
| Modèle de données | Table plate unique uniquement ; pas d'imbrication, de relations ou de types de données de colonne encodés dans le format |
| Encodage des caractères | Tout encodage convenu entre l'émetteur et le récepteur ; UTF-8 et Windows-1252 sont les plus courants |
| Compression intégrée | Aucune ; les fichiers sont couramment archivés en `.gz` ou [ZIP](/format/zip) |
| Aptitude au streaming | Élevée - les lignes peuvent être traitées ligne par ligne sans charger tout le fichier en mémoire |
| Support des données binaires | Non pris en charge nativement ; le contenu binaire doit être encodé en Base64 sous forme de texte |
| Limites de lignes des applications | Aucune limite au niveau du format ; Microsoft Excel limite l'importation de feuilles à 1 048 576 lignes |
| Publié | 1970s (early use); RFC 4180 published 2005 |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.rfc-editor.org |
Conversions CSV
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers CSV.