CSV parser/reader for C#?
C#CsvC# Problem Overview
is there a good and free implementation of CSV parser available under some liberal licence? Some counterpart of SuperCSV for Java, perhaps a port?
C# Solutions
Solution 1 - C#
Solution 2 - C#
There's a nice implementation on CodeProject:
> To give more down to earth numbers, with a 45 MB CSV file containing 145 fields and 50,000 records, the reader was processing about 30 MB/sec. So all in all, it took 1.5 seconds! The machine specs were P4 3.0 GHz, 1024 MB.
Solution 3 - C#
You can load a CSV file to DataTable.
Sample code -
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;
}
Make sure you compile your project to x86 processor. It doesn't work for x64.
Solution 4 - C#
try filehelpers Work amazingly well. I am using it to parse a 100 MB file every day.
Solution 5 - C#
Have you tried the FileHelpers library? It's free, open source and can be used to parse CSV files.
Solution 6 - C#
I've started using CSV Parser that is part of the CommonLibrary.NET.
It uses .NET 3.5, has an easy API, and convenient overloads/methods & lamda's for iterations.
I don't have any benchmarks for this one like above, but nice thing about this is that it's just one component of a library similar to Java Commons. So I also get a Command-line parser, Repository implementation among other things.