Existe-t-il des bibliothèques de lecteurs/écrivains CSV en C #?
Essayez CsvHelper . Il est aussi facile à utiliser que FastCsvReader et écrit également. J'ai été très satisfait de FastCsvReader dans le passé, mais j'avais besoin de quelque chose qui écrit aussi, et je n'étais pas satisfait de FileHelpers.
Lecture:
var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
Écriture:
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
Divulgation complète: je suis l'auteur de cette bibliothèque.
Il y a quelques options, directement dans le cadre lui-même.
L'un des plus simples consiste à référencer Microsoft.VisualBasic, puis à utiliser TextFieldParser . Il s'agit d'un lecteur CSV entièrement fonctionnel dans le cadre principal.
Une autre bonne alternative est de tiliser des ensembles de données pour lire les fichiers CSV .
Sébastien Lorion a un grand lecteur CSV
sur CodeProject appelé n lecteur CSV rapide . Probablement l'un des meilleurs pour C # et c'est gratuit.
En ce qui concerne l'écriture, utilisez simplement StreamWriter
.
Voici du code standard pour écrire un DataGridView
dans un fichier:
private void exportDGVToCSV(string filename)
{
if (dataGridView1.Columns.Count != 0)
{
using (Stream stream = File.OpenWrite(filename))
{
stream.SetLength(0);
using (StreamWriter writer = new StreamWriter(stream))
{
// loop through each row of our DataGridView
foreach (DataGridViewRow row in dataGridView1.Rows)
{
string line = string.Join(",", row.Cells.Select(x => $"{x}"));
writer.WriteLine(line);
}
writer.Flush();
}
};
}
}
Oui - même si je suppose que vous demandez des détails?
Essayez FileHelpers
Il y en a des dizaines.
http://www.filehelpers.net/ est l'un des plus courants.
Je dois dire que je trouve Filehelpers restrictif dans certains scénarios, et que j'utilise plutôt The Fast CSV Reader . D'après mon expérience, si vous ne connaissez pas le format de votre fichier CSV ou importez le mappage jusqu'à l'exécution - c'est la meilleure bibliothèque à utiliser.