是否有一种好的、免费的CSV解析器的实现,可在某些宽松的许可下使用? 例如Java中的SuperCSV的对应物,可能是一个端口?
在CodeProject上有一个很好的实现:
为了给更具体的数字,处理一个包含145个字段和50,000条记录的45 MB CSV文件时,读取器大约每秒处理30 MB。所以总体而言,这只需要1.5秒!机器规格为P4 3.0 GHz,1024 MB。
Microsoft.VisualBasic.FileIO.TextFieldParse
,它解决了问题。 - iCollect.it Ltd你可以将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。