web-dev-qa-db-fra.com

Existe-t-il des bibliothèques de lecture / écriture CSV en C #?

Existe-t-il des bibliothèques de lecteurs/écrivains CSV en C #?

101
mrblah

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.

93
Josh Close

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 .

19
Reed Copsey

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();
            }
        };
    }
}
16
user195488

Oui - même si je suppose que vous demandez des détails?

Essayez FileHelpers

8
Murph

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.

3
Alex