J'ai essayé d'écrire dans un fichier CSV en utilisant CsvHelper en C #.
Ceci est le lien vers la bibliothèque http://joshclose.github.io/CsvHelper/
J'ai utilisé le code sur le site Web.
Voici mon code:
var csv = new CsvWriter(writer);
csv.Configuration.Encoding = Encoding.UTF8;
foreach (var value in valuess)
{
csv.WriteRecord(value);
}
Il écrit seulement une partie des données dans le fichier csv.
Les dernières lignes étaient manquantes.
Pourriez-vous s'il vous plaît aider à ce sujet.
quand, j'ai ajouté ce code après que le code de boucle fonctionne bien
var csv = new CsvWriter(writer);
csv.Configuration.Encoding = Encoding.UTF8;
foreach (var value in valuess)
{
csv.WriteRecord(value);
}
writer.Close();
Le problème est survenu car je n'ai pas fermé la connexion
Vous devez vider le flux. L'instruction Using sera vidée lorsqu'elle sera hors de portée.
using (TextWriter writer = new StreamWriter(@"C:\test.csv", false, System.Text.Encoding.UTF8))
{
var csv = new CsvWriter(writer);
csv.WriteRecords(values); // where values implements IEnumerable
}
En supposant que writer
est une sorte de TextWriter, vous devez ajouter un appel pour vider le contenu avant de fermer le rédacteur:
writer.Flush()
Si les dernières lignes sont manquantes, c'est la raison la plus probable.
Ajout à la réponse de @ greg:
using (var sr = new StreamWriter(@"C:\out.csv", false, Encoding.UTF8)) {
using (var csv = new CsvWriter(sr)) {
csv.WriteRecords(values);
}
}