Le dernier CSV qui m'a coûté un après-midi était une exportation de 40 Mo depuis le magasin WooCommerce d'un client. J'ai double-cliqué dessus, Excel a décidé que la colonne SKU était une date, et 2024-11-3 était soudainement ce qui était 2024-11-3- sauf que c'était le & #39 ; t, c'était un code produit Excel l'avait réécrit utilement Au moment où nous avons remarqué, le " ; cleaned" ; fichier avait déjà été réimporté et quelques centaines de produits avaient des SKU qui ne pointaient à rien.
C'est le problème de l'ouverture d'un CSV dans une application de tableur. Une feuille de calcul n'est pas un spectateur, c'est un éditeur avec des opinions. Il contraint les types, il supprime les zéros en tête des codes postaux et des numéros de téléphone, il réinterprète tout ce qui ressemble vaguement à une date, et il fait tout cela avant d'avoir regardé une seule ligne. Parfois, vous voulez juste examiner le fichier - vérifiez les noms des colonnes, confirmez le nombre de lignes, trouvez l'enregistrement qui a battu l'importation et sortez.
je construis Toolz.dev et j'ai lu d'autres personnes' ; s CSV exporte constamment - Paiements de rayures, vidages de bases de données, extraits analytiques, fichiers de migration de plugins Alors j'ai construit le Visionneuse CSV Pour être l'option ennuyeuse et honnête : il analyse le fichier, vous montre exactement ce qu'il contient et ne change rien. Pas de contrainte de type, pas de correction automatique, pas de téléchargement. Collez le texte ou déposez le fichier, et il s'affiche sous la forme d'une table que vous pouvez rechercher et trier.
tl;dr : Un visualiseur CSV analyse le texte délimité et le rend sous la forme d'une table sans éditer ni contraindre les valeurs. le Visionneuse CSV détecte automatiquement si votre fichier utilise des virgules, des points-virgules, des onglets ou des tuyaux, poignées RFC 4180 champs cités (commas et nouvelles lignes dans les cellules, guillemets doublés), vous met en garde contre les lignes irrégulières et les en-têtes en double, et les exportations vers CSV ou JSON normalisés. Tout s'exécute dans votre navigateur - le fichier n'est jamais téléchargé et les valeurs restent des chaînes, donc les zéros en tête survivent.
Qu'est-ce qu'un fichier CSV, vraiment ?
CSV signifie valeurs séparées par des virgules, et ce nom est responsable d'une décennie de bogues, car deux des trois mots ne sont pas fiables.
Les valeurs ne sont pas toujours séparées par des virgules Les locales qui utilisent une virgule comme séparateur décimal - la majeure partie de l'Europe continentale - exportent plutôt avec des points-virgules, car 1,50;2,75 est sans ambiguïté et 1,50,2,75 n'est pas. Excel dans un paramètre régional allemand ou français, cela par défaut. Les exportations d'analyses et de bases de données utilisent souvent des onglets et les pipelines de journaux utilisent fréquemment des tuyaux. L'un de ces éléments est toujours familièrement un "CSV".
Et les valeurs ne sont pas toujours claires. Au moment où une valeur contient le délimiteur, le format a besoin d'une hachure d'échappement et la RFC 4180 en fournit une : encapsulez le champ entre guillemets. À l'intérieur de ces citations, le délimiteur n'est qu'un personnage. Un caractère de citation lui-même est échappé en le doublant. Et un champ entre guillemets peut contenir des sauts de ligne littéraux, ce qui signifie qu'un seul enregistrement logique peut s'étendre sur plusieurs lignes physiques dans le fichier.
Ce dernier point est celui où les analyseurs naïfs meurent. Si votre code est line.split(',')- et j'ai écrit cette ligne, et vous aussi - alors ce fichier le détruira :
id,name,note
1,"Smith, John","He said ""hi""
on the second line"
2,Ada,plain
Trois colonnes, deux enregistrements. Un analyseur de la virgule divisée voit quatre champs dans la deuxième ligne, panique sur les citations errantes et traite la ligne emballée comme un troisième enregistrement. Un analyseur approprié parcourt le caractère de chaîne par caractère, en suivant s'il est actuellement entre guillemets, et produit exactement ce que signifie le fichier. Le visionneur CSV fait la deuxième chose.
Principales caractéristiques de la visionneuse CSV
Détection automatique des délimiteurs
Collez un fichier et l'outil devine le délimiteur avant qu'il ne fasse autre chose L'approche naïve consiste à compter les caractères et à choisir le plus fréquent, qui échoue immédiatement en prose - a notes La colonne pleine de phrases anglaises contient beaucoup plus de virgules qu'un fichier délimité par un point-virgule a des points-virgules.
Donc, les scores de détection cohérence au lieu de la fréquence. Il prend les dix premières lignes non vides, compte chaque délimiteur de candidats (virgule, point-virgule, tabulation, tuyau) en dehors des sections cotées et récompense le candidat qui produit le même nombre sur chaque ligne. Un véritable délimiteur apparaît exactement columns - 1 fois par ligne, chaque ligne Une virgule à l'intérieur de la prose apparaît de manière irrégulière La cohérence gagne, la fréquence ne rompt que les égalités Si elle devine toujours mal - et elle le fera, sur les fichiers comportant une colonne - vous pouvez l'annuler à partir du dépôt.
Analyse des champs cités par la RFC 4180
L'analyseur est une machine à états au niveau des caractères, pas une regex et non une fraction. Il suit un booléen : sommes-nous à l'intérieur d'un champ cité ? Les citations intérieures, les délimiteurs et les nouvelles lignes sont des caractères ordinaires et un doublé "" émet une seule citation littérale. En dehors des guillemets, un délimiteur met fin au champ et une nouvelle ligne termine l'enregistrement. Les terminaisons de ligne CRLF, LF et CR nue sont toutes acceptées, car les exportations Windows, les exportations Unix et les anciens exportations de Mac existent et se retrouvent toutes dans la même boîte de réception.
C'est la différence entre un spectateur qui vous montre Smith, John dans une cellule et une qui vous montre "Smith et John" en deux.
Rechercher dans chaque colonne
La boîte de recherche filtre les lignes avec une sous-chaîne insensible à la casse en fonction de chaque cellule de la ligne Ce n'est pas flou, ce n'est pas un langage de requête, et c'est délibéré - lorsque vous recherchez l'enregistrement qui a cassé une importation, vous avez un ID de commande ou une adresse e-mail et vous voulez la ligne qui le contient, immédiatement.
La recherche s'exécute sur les données analysées en mémoire, de sorte qu'elles sont instantanées sur des fichiers de toutes tailles que votre navigateur peut contenir, et il compose avec le tri : filtrer d'abord, trier le résultat, exporter ce qui reste.
Tri des colonnes compatibles numériques
Cliquez sur un en-tête de colonne pour trier par celui-ci Cela semble trivial et ne l'est pas, car CSV n'a pas de types - chaque valeur arrive sous forme de chaîne et le tri des chaînes est effectué 100 avant 9 et 2024-3-1 avant 2024-11-1.
Le tri inspecte les valeurs : si chaque cellule non vide de la comparaison analyse en nombre (avec des milliers de séparateurs dépouillés), il se compare numériquement. Sinon, cela revient à une comparaison de chaînes de chaînes avec une collation numérique, donc item2 Trie avant item10. Les cellules vides coulent toujours vers le bas, dans les deux sens, car un blanc n'est pas une petite valeur - il en manque une, et enfouir les données manquantes en haut d'un tri descendant est la façon dont vous ne le remarquez pas.
Avertissements sur la qualité des données
Deux problèmes structurels sont signalés avant d'aller plus loin.
Lignes irrégulières. Si une ligne a plus ou moins de champs que l'en-tête, quelque chose ne va pas en amont : un délimiteur non coté dans une valeur, une exportation tronquée, une nouvelle ligne parasite. Le visualiseur compile des lignes courtes et tronque les longues, de sorte que la table affiche toujours, puis vous indique exactement combien de lignes ont été affectées. Ce nombre est le nombre que je vérifie en premier, car un fichier avec trois lignes irrégulières sur dix mille a un bogue de données. COPY In Postgres fera surface à 3 heures du matin.
Dupliquez les noms de colonnes. Deux colonnes appelées id s'écraseront silencieusement dans presque tous les consommateurs en aval - les pandas les renommeront, une conversion JSON ne conservera que le dernier et une importation SQL sera erronée Le spectateur les nomme dans la bannière d'avertissement afin que vous puissiez corriger l'en-tête avant qu'il ne compte.
Exportation CSV et JSON
Le panneau d'exportation re-sérialise tout ce qui est actuellement à l'écran - filtré, trié, tout ce que vous avez fait L'exportation CSV applique une citation correcte de la RFC 4180 à la sortie, ce qui en fait un moyen décent de normaliser un fichier arrivé avec une citation incohérente L'exportation JSON convertit la table en un tableau d'objets saisis par la ligne d'en-tête, ce que vous souhaitez lorsque vous alimentez un script ou une API.
Un choix délibéré : Les valeurs exportées conservent les chaînes. "01234" ne devient pas 1234. Une colonne CSV pleine de chiffres peut être une quantité, ou il peut s'agir d'un code postal, d'un numéro de compte, d'un numéro de téléphone ou d'un SKU - et il n'y a aucun moyen de distinguer des données. Le fait de contraindre à des nombres jette les zéros en tête de façon permanente, qui est le bug exact qui a démarré cet article. Si vous voulez des nombres, jetez-les explicitement de l'autre côté, où vous savez ce que signifie la colonne.
Il s'exécute entièrement dans votre navigateur
Le fichier est lu avec le FileReader API et analysé en JavaScript. Rien n'est téléchargé, aucune requête de recherche n'est enregistrée, aucune donnée ne touche un serveur. Ce n'est pas une promesse de politique, c'est un fait architectural que vous pouvez vérifier en ouvrant DevTools, l'onglet Réseau pendant que vous utilisez l'outil, ou en tirant votre Wi-Fi et en le regardant continuer à fonctionner.
Cela compte plus que ce qu'il n'y paraît. La plupart des fichiers CSV qui valent la peine d'être examinés contiennent quelque chose que vous ne colleriez pas dans un site Web d'étranger : e-mails des clients, chiffres de la paie, historique des commandes, exportation d'une base de données de production. Si vous travaillez sous GDPR, HIPAA ou un client NDA, "je l'ai collé dans un convertisseur en ligne" n'est pas une phrase que vous voulez dire à voix haute. J'en ai écrit plus sur ce modèle de menace dans Pourquoi les outils côté client battent les convertisseurs cloud.
Comment utiliser la visionneuse CSV
Étape 1 : Chargez le fichier
Deux façons d'entrer Collez le texte CSV directement dans la zone de saisie - bon pour un extrait d'un journal, un message Slack ou une réponse API que vous souhaitez observer Ou cliquez télécharger le fichier et choisissez un .csv, .tsv, ou .txt fichier à partir de votre machine. Le fichier est lu localement ; le bouton de téléchargement est un fichier cueilleur, pas un téléchargement.
Si vous collez à partir d'une feuille de calcul, notez que la plupart des applications de tableur placent du texte séparé par onglet sur le presse-papiers, pas des virgules. Définissez le délimiteur sur Tab, ou laissez-le sur Auto et laissez la détection le gérer.
Étape 2 : Vérifiez les paramètres d'analyse
Trois paramètres, et les valeurs par défaut sont la plupart du temps correctes.
délimiteur est auto par défaut. Remplacez-le si votre fichier a une colonne ou si la détection se trompe sur un petit échantillon.
La première ligne est l'en-tête est allumé Éteignez-le pour les fichiers sans en-tête - les colonnes deviennent Column 1, Column 2, et ainsi de suite, et aucune ligne n'est consommée.
garnir un espace blanc est allumé, qui dépouille les espaces de tête et de fuite de chaque cellule. C'est généralement ce que vous voulez, puisque , Après un délimiteur est extrêmement courant dans les CSV manuscrites. Désactivez-le si vos données ont des espaces de premier plan significatifs, tels que des champs à largeur fixe qui ont été déversés sur CSV.
Étape 3 : Lisez le tableau
choquer Afficher sous forme de tableau et vous obtenez la grille analysée plus une ligne de statistiques : combien de lignes sont visibles sur combien de total, combien de colonnes, quel délimiteur a été utilisé et combien de colonnes sont entièrement numériques Ce nombre numérique est un contrôle rapide de la santé mentale - si une colonne que vous attendez numérique n'est pas comptée, une ligne contient un non-numéro et c'est généralement la ligne qui rompra votre importation.
Rechercher des lignes de filtres. Cliquez sur un en-tête trie. Les deux composent.
Étape 4 : Exporter ou passer à autre chose
Copiez la table visible en JSON, téléchargez-la en tant que CSV ou téléchargez-la en tant que JSON. Les filtres et le tri sont appliqués à l'exportation, donc "rechercher pour refunded, trier par date, télécharger csv" vous donne exactement ce sous-ensemble.
Comment cela se compare-t-il à d'autres moyens d'ouvrir un CSV ?
| s'approche | Contrefere vos données | Gère les champs de devis | Fonctionne hors ligne | Envoie des données n'importe où | bien pour |
|---|---|---|---|---|---|
| Visionneuse CSV (Toolz.dev) | non | Oui (RFC 4180) | oui | non | Inspection, recherche, vérification de la santé mentale, conversion en JSON |
| Excel / Google Sheets | Oui - dates, zéros principaux, notation scientifique | oui | Excel Oui, Feuilles Non | Téléchargement de feuilles vers Google | Édition, formules, graphiques |
| Un éditeur de texte | non | Non, vous l'analysez dans votre tête | oui | non | Petits fichiers, vérification des fins de ligne |
csvkit / xsv / DuckDB |
non | oui | oui | non | Fichiers énormes, scripts, jointures, agrégation |
pandas read_csv |
Oui, par défaut (dtype=str pour l'arrêter) |
oui | oui | non | Analyse, pipelines de transformation |
| La plupart des sites "Viseur de CSV en ligne" | varie | habituellement | non | Oui - téléchargé sur leur serveur | Rien de ce qui te tient à cœur |
Le résumé honnête : pour les fichiers supérieurs à quelques centaines de mégaoctets, utilisez DuckDB ou xsv- un navigateur analyse tout le fichier en mémoire en un seul passage et il n'y a aucun moyen de contourner cela Pour tout ce que vous devez éditer avec des formules, utilisez une feuille de calcul et acceptez la coercition, ou importez comme texte Pour tout ce qui se trouve entre les deux - le quotidien " ; ce qui se trouve réellement dans ce fichier, et pourquoi la ligne 4,201 break" ; - un visualiseur qui ne change rien est le bon outil.
Cas d'utilisation courants
Déboguer une importation ratée
Une importation CSV échoue avec " ; 8 colonnes attendues, obtenu 9 sur la ligne 4201" ;. Ouvrez le fichier dans la visionneuse, vérifiez l'avertissement en ligne irrégulière, puis recherchez une valeur dont vous savez qu'elle figure sur cet enregistrement Neuf fois sur dix vous trouverez une virgule non citée à l'intérieur d'une adresse ou d'un nom de société - Acme, Inc. écrit sans devis. Vous savez maintenant s'il faut corriger l'exportation ou le prétraitement du fichier.
Examen d'une base de données avant de partir n'importe où
Avant que les données d'un client ne quittent votre ordinateur portable, vous voulez savoir ce qu'il contient. Noms de colonne, nombre de lignes, si le email La colonne est entièrement remplie, qu'il existe des ID en double. La ligne et la colonne des statistiques remplies/comptes uniques répondent à tout cela en une dizaine de secondes, sans que le fichier n'atteigne un serveur.
Conversion de CSV en JSON pour une API ou un script
Vous disposez d'une feuille de calcul d'enregistrements et vous en avez besoin comme JSON pour initialiser une base de données, alimenter un point de terminaison REST ou créer un fichier de fixture. Coller, analyser, exporter JSON. Si vous avez besoin du voyage inversé, le CSV à JSON et JSON vers CSV Les outils gèrent la conversion dédiée avec plus d'options, et j'ai parcouru le problème aller-retour en détail dans le Guide de conversion JSON en CSV.
Vérification d'une exportation européenne qui s'est ouverte comme une colonne
Un client envoie une exportation depuis une installation Excel allemande et chaque ligne est une longue chaîne Définissez le délimiteur sur Semicolon et il s'enclenche dans les colonnes Cela prend quatre secondes et vaut la peine d'être connu, car le réflexe " ; le fichier est corrompu" ; est faux - le fichier est bien, votre analyseur' ; l'hypothèse n'était pas.
Auditer les exportations d'analyses ou de plateformes publicitaires
Les exportations GA4, Google Ads et Meta arrivent sous forme de CSV avec des lignes de métadonnées au-dessus de l'en-tête réel Désactivez " ; La première ligne est header" ;, regardez la forme, et vous verrez exactement sur quelle ligne se trouve l'en-tête réel - puis supprimez les lignes indésirables de la boîte de pâte et réanalysez.
Plongée approfondie technique : les règles d'analyse qui comptent réellement
La RFC 4180 est une description, et non une norme que quiconque applique. Il a été publié en 2005 pour documenter ce que les implémentations CSV ont déjà fait, et il note explicitement que beaucoup diffèrent. Considérez-le comme la ligne de base sensée, et non comme une garantie concernant un fichier que vous avez été envoyé.
Citation des règles. Un champ peut être enveloppé de guillemets doubles. Quotes Inside, Délimiteurs, Cr, LF et Citations doublées ("" → ") sont littéraux Une citation apparaissant au milieu d'un champ non cité est ambiguë - le spectateur traite la citation comme significative seulement lorsque la citation est le premier caractère du champ, c'est ainsi que se comportent la plupart des analyseurs réels et qui laisse des valeurs comme 6" nails survivre.
Fin de ligne. CRLF est ce que dit la spécification. LF est ce que produit Unix. Un CR nu est ce que les très anciens logiciels Mac ont produits et ce que certains systèmes embarqués produisent encore. L'analyseur accepte les trois, y compris les fins mixtes dans un seul fichier, car les fins mixtes se produisent absolument lorsque les fichiers sont modifiés sur deux machines.
la nomenclature. Les fichiers UTF-8 écrits par Excel commencent par une marque d'ordre d'octets, EF BB BF. Si le nom de votre première colonne ressemble à id Mais une comparaison de chaînes avec "id" Échec, cette nomenclature invisible chevauche sur le devant. Il s'agit du bogue "pourquoi ma recherche d'en-tête" le plus courant dans la gestion du CSV.
Les nouvelles lignes de suivi. Un fichier se terminant par une nouvelle ligne n'a pas d'enregistrement vide supplémentaire - la nouvelle ligne termine le dernier enregistrement. L'option de saut de lignes vides et n°39 ; rend cela non problématique dans les deux sens.
Type d'inférence. Il y a & #39 ; n'importe lequel CSV n'a pas de types Chaque valeur dans le fichier est une chaîne, et tout type que vous sortez de l'autre côté a été inventé par votre analyseur sur la base d'une supposition Ce n'est pas une faille dans le format, c'est le format' ; toute la nature - et c'est pourquoi le spectateur ne devine jamais en votre nom.
FAQ
Comment ouvrir un fichier CSV sans Excel ?
Téléchargez le fichier dans le Visionneuse CSV Ou collez son contenu dans la zone de saisie. Le fichier est analysé dans votre navigateur et affiché sous la forme d'un tableau que vous pouvez rechercher et trier. Pas de logiciel de tableur, aucune installation et aucune mise en ligne sur un serveur.
Pourquoi mon CSV s'ouvre-t-il comme une longue colonne ?
Le délimiteur ne correspond pas. Les fichiers exportés dans des paramètres régionaux qui utilisent une virgule comme séparateur décimal utilisent généralement des points-virgules entre les champs et les exportations séparées par des tabulations utilisent des onglets. Changez le paramètre de délimiteur d'Auto au point-virgule, à la tabulation ou à la tuyauterie et les colonnes se diviseront correctement.
Le spectateur gère-t-il les virgules dans les champs entre guillemets ?
Oui. L'analyseur suit RFC 4180 : un champ enveloppé de guillemets peut contenir des délimitations, des sauts de ligne et des guillemets échappés écrits sous la forme de deux guillemets doubles à la suite. une valeur comme "Smith, John" Reste dans une cellule au lieu de se diviser en deux.
Quelle est la différence entre CSV et TSV ?
Ils utilisent différents séparateurs de champs - CSV se sépare avec des virgules, TSV avec des caractères d'onglet. TSV a besoin de moins de citations car les onglets apparaissent rarement à l'intérieur des valeurs de données, c'est pourquoi les exportations de bases de données et d'analyses le préfèrent souvent. Ce visualiseur lit les deux ; choisissez Tab comme délimiteur pour les fichiers TSV.
Que signifie l'avertissement "lignes déchirées" ?
Une ligne a plus ou moins de champs que la ligne d'en-tête. Cela signifie généralement un délimiteur non coté à l'intérieur d'une valeur, d'une exportation tronquée ou d'un champ contenant une ligne parasite. Le spectateur compile des lignes courtes et tronque les longues afin que la table soit toujours affichée et vous indique combien de lignes ont été affectées.
Y a-t-il une limite de taille de fichier ?
La limite pratique est la mémoire de votre navigateur, car le fichier entier est analysé en un seul JavaScript Pass. Les fichiers jusqu'à quelques dizaines de mégaoctets conviennent bien à un ordinateur portable typique. Pour les exportations multi-gigaoctets, utilisez un outil de streaming tel que CSVKit, DuckDB ou Pandas avec ChunkSize.
Puis-je convertir le CSV en JSON ?
Oui. Le panneau Export convertit la table analysée en un tableau d'objets JSON saisis par la ligne d'en-tête, que vous pouvez copier ou télécharger. Les valeurs restent sous forme de chaînes de conception - les contraindre à des numéros supprimerait les zéros non significatifs des identifiants, des codes postaux et des numéros de téléphone.
Est-il sécuritaire d'ouvrir un CSV confidentiel ici ?
Oui. L'analyse s'exécute entièrement dans votre navigateur à l'aide de JavaScript et de l'API FileReader. Aucun fichier, cellule ou requête de recherche n'est transmis à un serveur ou enregistré. Vous pouvez vérifier cela en ouvrant l'onglet Réseau de votre navigateur DevTools lors de l'utilisation de l'outil ou en vous déconnectant d'Internet.
Outils connexes
- CSV à JSON- conversion dédiée avec options de type
- JSON vers CSV- le voyage de retour, y compris l'aplatissement des objets imbriqués
- XML vers JSON- pour les exportations qui arrivent plutôt sous forme XML
- Formateur JSON- nettoyez le JSON que vous venez d'exporter
- Diff JSON- comparez deux exportations et trouvez ce qui a changé
Lectures complémentaires : Le guide ultime des outils JSON et Conversion JSON en CSV.



