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

时间:2009-05-25 14:00:38

标签: c# csv

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

6 个答案:

答案 0 :(得分:70)

答案 1 :(得分:53)

CodeProject上有一个很好的实现:

  

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

答案 2 :(得分: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;
}

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

答案 3 :(得分:7)

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

答案 4 :(得分:4)

您是否尝试过FileHelpers库?它是免费的,开源的,可用于解析CSV文件。

答案 5 :(得分:3)

我已经开始使用属于CommonLibrary.NET的CSV Parser。

它使用.NET 3.5,有一个简单的API,方便的重载/方法& lamda用于迭代。

我没有像上面这样的基准测试,但是关于它的好处是它只是类似于Java Commons的库的一个组件。所以我还得到了一个命令行解析器,Repository实现等。