web-dev-qa-db-ja.com

C#にCSVリーダー/ライターライブラリはありますか?

C#に [〜#〜] csv [〜#〜] リーダー/ライターライブラリはありますか?

101
mrblah

CsvHelper を試してください。 FastCsvReaderと同じくらい使いやすく、書き込みも行います。私は過去にFastCsvReaderに非常に満足していますが、書き込みを行うものが必要であり、FileHelpersには満足していませんでした。

読み取り:

var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();

書き込み:

var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );

完全な開示:私はこのライブラリの著者です。

93
Josh Close

フレームワーク自体にいくつかのオプションがあります。

最も簡単な方法の1つは、Microsoft.VisualBasicを参照してから TextFieldParser を使用することです。コアフレームワークの完全に機能するCSVリーダーです。

もう1つの優れた代替手段は、 CSVファイルの読み取りにデータセットを使用 です。

19
Reed Copsey

Sebastien LorionのCodeProjectには、 A Fast CSV Reader と呼ばれる素晴らしいCSVリーダーがあります。おそらくC#にとって最高の1つであり、無料です。

書く限り、StreamWriterを使用してください。

DataGridViewをファイルに書き込むための定型的なコードを次に示します。

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

はい-あなたは実際に詳細を求めていると思いますか?

試す FileHelpers

8
Murph

たくさんあります。

http://www.filehelpers.net/ は最も一般的なものの1つです。

私は、いくつかのシナリオでFilehelpersを制限していると言い、代わりに The Fast CSV Reader を使用します。私の経験では、CSVファイルの形式がわからない場合、または実行時までマッピングをインポートする場合は、これが使用に適したライブラリです。

3
Alex