Odpowiedzi:
Wypróbuj CsvHelper . Jest tak łatwy w użyciu jak FastCsvReader i również pisze. W przeszłości byłem bardzo zadowolony z FastCsvReader, ale potrzebowałem też czegoś, co umożliwia pisanie i nie byłem zadowolony z FileHelpers.
Czytanie:
var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
Pisanie:
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
Pełne ujawnienie: jestem autorem tej biblioteki.
WriteField
. Sprawdź dokumentację tutaj joshclose.github.io/CsvHelper
CsvHelper
. Może mógłby zaoferować alternatywne strategie czytania w tym miejscu?
Istnieje kilka opcji bezpośrednio w samej strukturze.
Jednym z najłatwiejszych jest odwołanie się do Microsoft.VisualBasic, a następnie użycie TextFieldParser . Jest to w pełni funkcjonalny czytnik CSV w rdzeniu.
Inną dobrą alternatywą jest używanie zestawów danych do odczytywania plików CSV .
Sebastien Lorion ma świetnego CSV
czytnika CodeProject o nazwie A Fast CSV Reader . Prawdopodobnie jeden z najlepszych dla C # i jest darmowy.
Jeśli chodzi o pisanie, po prostu użyj StreamWriter
.
Oto standardowy kod do zapisywania a DataGridView
do pliku:
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();
}
};
}
}
Tak - chociaż zakładam, że faktycznie pytasz o szczegóły?
Wypróbuj FileHelpers
Jest ich dziesiątki.
http://www.filehelpers.net/ jest jednym z najczęstszych.
Powinienem powiedzieć, że uważam Filehelpers za restrykcyjne w niektórych scenariuszach i zamiast tego używam The Fast CSV Reader . Z mojego doświadczenia wynika, że jeśli nie znasz formatu swojego pliku CSV lub importu mapowania do czasu uruchomienia - jest to lepsza biblioteka do użycia.
.net csv library
. Dowody, choć anegdotyczne, są takie, że moje twierdzenie jest takie, że pytanie to było rozpatrywane ponad 22 000 razy w ciągu ostatnich sześciu lat.