¿Existe una implementación buena y gratuita del analizador CSV disponible bajo alguna licencia liberal? ¿Alguna contraparte de SuperCSV para Java, quizás un puerto?
¿Existe una implementación buena y gratuita del analizador CSV disponible bajo alguna licencia liberal? ¿Alguna contraparte de SuperCSV para Java, quizás un puerto?
Respuestas:
Hay una buena implementación en CodeProject :
Para dar más números reales, con un archivo CSV de 45 MB que contiene 145 campos y 50.000 registros, el lector estaba procesando unos 30 MB / seg. Así que, en general, ¡tomó 1,5 segundos! Las especificaciones de la máquina fueron P4 3.0 GHz, 1024 MB.
Microsoft.VisualBasic.FileIO.TextFieldParsey funcionó.
Puede cargar un archivo CSV en DataTable.
Código de muestra -
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;
}
Asegúrese de compilar su proyecto en un procesador x86. No funciona para x64.
prueba filehelpers Funciona increíblemente bien. Lo estoy usando para analizar un archivo de 100 MB todos los días.
¿Ha probado la biblioteca FileHelpers? Es gratuito, de código abierto y se puede utilizar para analizar archivos CSV.
Comencé a usar CSV Parser que es parte de CommonLibrary.NET .
Utiliza .NET 3.5, tiene una API sencilla y convenientes sobrecargas / métodos y lamda para iteraciones.
No tengo ningún punto de referencia para este como el anterior, pero lo bueno de esto es que es solo un componente de una biblioteca similar a Java Commons. Entonces también obtengo un analizador de línea de comandos, implementación de repositorio, entre otras cosas.