Risposte:
Prova CsvHelper . È facile da usare come FastCsvReader e scrive anche. Sono stato molto soddisfatto di FastCsvReader in passato, ma avevo bisogno di qualcosa che facesse anche la scrittura e non ero soddisfatto di FileHelpers.
Lettura:
var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
scrittura:
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
Full Disclosure: sono l'autore di questa libreria.
WriteField
. Controlla i documenti qui joshclose.github.io/CsvHelper
CsvHelper
. Forse potrebbe offrire alcune strategie di lettura alternative in quel punto? A proposito, ho cancellato il mio commento originale, poiché ora è irrilevante :-)
Ci sono un paio di opzioni, proprio nel framework stesso.
Uno dei più semplici è fare riferimento a Microsoft.VisualBasic, quindi utilizzare TextFieldParser . È un lettore CSV completamente funzionale nel framework principale.
Un'altra buona alternativa è utilizzare i set di dati per leggere i file CSV .
Sebastien Lorion ha un ottimo CSV
lettore su CodeProject chiamato A Fast CSV Reader . Probabilmente uno dei migliori per C # ed è gratuito.
Per quanto riguarda la scrittura, usa StreamWriter
.
Ecco del codice boilerplate per scrivere a DataGridView
in un file:
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();
}
};
}
}
Sì, anche se presumo che tu stia effettivamente chiedendo dettagli?
Prova FileHelpers
Ce ne sono a dozzine.
http://www.filehelpers.net/ è uno dei più comuni.
Dovrei dire che trovo Filehelpers restrittivo in alcuni scenari e invece uso The Fast CSV Reader . Nella mia esperienza, se non conosci il formato del tuo file CSV o importi la mappatura fino al runtime, questa è la libreria migliore da usare.
.net csv library
. La prova, sebbene aneddotica, per la mia affermazione è che questa domanda è stata letta più di 22000 volte negli ultimi sei anni.