web-dev-qa-db-ja.com

C#のCSVパーサー/リーダー?

いくつかのリベラルライセンスの下で利用可能なCSVパーサーの適切で無料の実装はありますか? Javaの SuperCSV に相当するもの、おそらくポートですか?

89
70
Keltex

CodeProject には素晴らしい実装があります:

145個のフィールドと50,000個のレコードを含む45 MBのCSVファイルを使用して、より具体的な数値を提供するために、リーダーは約30 MB /秒を処理していました。全体として、1.5秒かかりました!マシンの仕様はP4 3.0 GHz、1024 MBでした。

53
Anton Gogolev

CSVファイルをDataTableにロードできます。

サンプルコード-

static DataTable CsvToDataTable(string strFileName)
{
    DataTable dataTable = new DataTable("DataTable Name");

    using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + Directory.GetCurrentDirectory() + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\""))
    {
        conn.Open();
        string strQuery = "SELECT * FROM [" + strFileName + "]";
        OleDbDataAdapter adapter = 
            new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
        adapter.Fill(dataTable);
    }
    return dataTable;
}

プロジェクトをx86プロセッサにコンパイルしてください。 x64では機能しません。

10
Maxim

try filehelpers 驚くほどうまく動作します。毎日100 MBのファイルを解析するために使用しています。

7
no_one

FileHelpersライブラリを試しましたか?無料のオープンソースであり、CSVファイルの解析に使用できます。

4
JaredPar

CommonLibrary.NET の一部であるCSVパーサーの使用を開始しました。

.NET 3.5を使用し、簡単なAPIを備え、反復のための便利なオーバーロード/メソッドとラムダを備えています。

上記のようなベンチマークはありませんが、これのいいところは、ライブラリの1つのコンポーネントであるJava Commons。 、とりわけリポジトリ実装。

3
zhao