Yanıtlar:
CsvHelper'ı deneyin . FastCsvReader kadar kullanımı kolaydır ve yazma da yapar. Geçmişte FastCsvReader'dan çok memnun kaldım, ancak aynı zamanda yazmayı da sağlayan bir şeye ihtiyacım vardı ve FileHelpers'tan memnun değildim.
Okuma:
var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
Yazı:
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
Tam Açıklama: Bu kütüphanenin yazarıyım.
WriteField
. Dokümanları buradan kontrol edin joshclose.github.io/CsvHelper
CsvHelper
. Belki o noktada bazı alternatif okuma stratejileri sunabilir? Bu arada orijinal
Çerçevenin kendisinde birkaç seçenek var.
En kolay yollardan biri Microsoft.VisualBasic'e başvurmak ve ardından TextFieldParser'ı kullanmaktır . Çekirdek çerçevede tamamen işlevsel bir CSV okuyucusudur.
Başka bir iyi alternatif, CSV dosyalarını okumak için veri kümelerini kullanmaktır .
Sebastien Lorion'un CSV
CodeProject'te A Fast CSV Reader adlı harika bir okuyucusu var . Muhtemelen C # için en iyilerden biri ve ücretsizdir.
Yazmaya gelince, sadece kullanın StreamWriter
.
DataGridView
Bir dosyaya yazmak için bazı standart kodlar :
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();
}
};
}
}
Evet - aslında ayrıntıları sorduğunuzu varsayıyorum.
FileHelpers'ı deneyin
Düzinelerce var.
http://www.filehelpers.net/ en yaygın olanlardan biridir.
Bazı senaryolarda Filehelpers'ı kısıtlayıcı bulduğumu ve bunun yerine The Fast CSV Reader'ı kullandığımı söylemeliyim . Tecrübelerime göre, CSV dosyanızın formatını bilmiyorsanız veya çalışma zamanına kadar eşlemeyi içe aktarıyorsanız - bu, kullanılacak daha iyi kitaplıktır.
.net csv library
. İddiam için anekdot olsa da kanıt, bu sorunun son altı yılda 22.000'den fazla kez görüldüğüdür.