Parser CSV / lettore per C #?

c‘è una buona e gratuita implementazione del parser CSV disponibile sotto qualche licenza liberale? Qualche contropartita di SuperCSV per Java, forse una porta?

FileHelpers Open Source Library .

C’è una bella implementazione su CodeProject :

Per dare più numeri di terra, con un file CSV di 45 MB contenente 145 campi e 50.000 record, il lettore stava elaborando circa 30 MB / sec. Quindi, tutto sumto, ci sono voluti 1,5 secondi! Le specifiche della macchina erano P4 3,0 GHz, 1024 MB.

È ansible caricare un file CSV su DataTable.

Codice d’esempio –

 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; } 

Assicurati di compilare il tuo progetto sul processore x86. Non funziona per x64.

prova filehelpers Funziona incredibilmente bene. Lo sto usando per analizzare un file da 100 MB al giorno.

Hai provato la libreria FileHelpers? È gratuito, open source e può essere utilizzato per analizzare i file CSV.

Ho iniziato a utilizzare CSV Parser che fa parte di CommonLibrary.NET .

Utilizza .NET 3.5, ha un’API facile, e convenienti overload / metodi e lamda per le iterazioni.

Non ho alcun benchmark per questo come sopra, ma la cosa bella di questo è che è solo un componente di una libreria simile a Java Commons. Così ho anche un parser da riga di comando, implementazione del repository tra le altre cose.