comment utiliser csvHelper pour lire la deuxième ligne d'un fichier csv
Question
J'ai un fichier csv avec deux lignes, la première est la ligne d'en-tête, qui comprend 36 colonnes séparées par ,
La deuxième ligne contient les valeurs, qui sont 36 valeurs séparées par ,
Je veux lire la deuxième ligne, j'ai trouvé que tout le monde en parle package csvHelper, donc je le télécharge, mais il n'en a pas dll
à ajouter à mon projet.
ma question est de savoir comment l'inclure et comment lire la deuxième ligne.
Je sais que je peux l'installer en utilisant Install-Package CsvHelper
mais je ne veux pas de cette façon parce que je veux déployer cette application sur un serveur.Ainsi, je préférerais s'il existe un moyen comme add reference
ou quelque chose.
si je savais comment l'inclure, lire la deuxième ligne ne serait pas difficile.Je ferais quelque chose comme ceci :
- charger le fichier csv
- lisez la première ligne et ignorez-la.
- lisez la deuxième ligne et divisez-la par
,
.
La solution
Vous pourriez utiliser TextReader.ReadLine()
pour sauter la première ligne :
using (TextReader reader = File.OpenText("filename"))
{
reader.ReadLine();
// now initialize the CsvReader
var parser = new CsvReader( reader ); // ...
}
Autres conseils
La réponse acceptée est une solution de contournement au problème, mais la bibliothèque propose la solution de premier ordre pour ce cas courant.
CsvConfiguration
la classe a une propriété HasHeaderRecord
qui pourrait être réglé sur true
, la bibliothèque ignorera la première ligne du fichier.
CsvConfiguration configuration = new CsvConfiguration { HasHeaderRecord = true };
using (TextReader sr = new StringReader(fileContent))
{
CsvReader reader = new CsvReader(sr, configuration);
}
voici un extrait du Documentation
Cet indicateur indique au lecteur/enregistreur s'il y a une ligne d'en-tête dans le fichier CSV.
MISE À JOUR dans la version la plus récente de la bibliothèque, la classe CsvConfiguration
est simplement renommé en Configuration