用于C#的CSV解析器/阅读器?

Bar*_*ski 90 c# csv

在某些自由许可下,是否有一个很好的免费实施CSV解析器?SuperCSV for Java的一些对应物,也许是一个端口?

Kel*_*tex 70

FileHelpers开源库.

  • FileHelpers(至少对于CSV)要求你"定义一个映射到源(文件)中的记录的类","你必须声明一个记录映射类"等等,这不是那么热门.我想将CSV转换为DataTable,而不是事先知道要预期的列数. (24认同)

Ant*_*lev 53

CodeProject上有一个很好的实现:

为了提供更多的实际数字,使用包含145个字段和50,000条记录的45 MB CSV文件,阅读器处理大约30 MB /秒.总而言之,耗时1.5秒!机器规格为P4 3.0 GHz,1024 MB.


Max*_*xim 10

您可以将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;
}
Run Code Online (Sandbox Code Playgroud)

确保将项目编译为x86处理器.它不适用于x64.

  • 这不适用于64位,唉. (5认同)

no_*_*one 7

尝试filehelpers工作得非常好.我每天用它来解析一个100 MB的文件.