Answers:
CodeProject有一个不错的实现:
为了提供更多具体数字,一个45 MB的CSV文件包含145个字段和50,000条记录,阅读器正在以大约30 MB /秒的速度处理。因此,总共花了1.5秒!机器规格为P4 3.0 GHz,1024 MB。
Microsoft.VisualBasic.FileIO.TextFieldParse
,就成功了。
您可以将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。
试试filehelpers出色地工作。我每天都用它来解析100 MB的文件。
您是否尝试过FileHelpers库?它是免费的开源软件,可用于解析CSV文件。
我已经开始使用CommonLibrary.NET的 CSV分析器。
它使用.NET 3.5,具有简单的API,并具有方便的重载/方法和用于迭代的lamda。
我没有像上面这样的基准,但是它的好处是它只是与Java Commons类似的库的一个组件。因此,我还获得了命令行解析器,存储库实现等。