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 :

  1. charger le fichier csv
  2. lisez la première ligne et ignorez-la.
  3. lisez la deuxième ligne et divisez-la par ,.
Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top