CSV parser/reader for C#?

C#Csv

C# 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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBartosz RadaczyńskiView Question on Stackoverflow
Solution 1 - C#KeltexView Answer on Stackoverflow
Solution 2 - C#Anton GogolevView Answer on Stackoverflow
Solution 3 - C#MaximView Answer on Stackoverflow
Solution 4 - C#no_oneView Answer on Stackoverflow
Solution 5 - C#JaredParView Answer on Stackoverflow
Solution 6 - C#zhaoView Answer on Stackoverflow