existe-t-il une bonne implémentation gratuite de l'analyseur CSV disponible sous une licence libérale? Un équivalent de SuperCSV pour Java, peut-être un port?
existe-t-il une bonne implémentation gratuite de l'analyseur CSV disponible sous une licence libérale? Un équivalent de SuperCSV pour Java, peut-être un port?
Réponses:
Il y a une belle implémentation sur CodeProject :
Pour donner plus de chiffres terre-à-terre, avec un fichier CSV de 45 Mo contenant 145 champs et 50 000 enregistrements, le lecteur traitait environ 30 Mo / s. Donc dans l'ensemble, cela a pris 1,5 seconde! Les spécifications de la machine étaient P4 3,0 GHz, 1024 Mo.
Microsoft.VisualBasic.FileIO.TextFieldParse
et ça a fait l'affaire.
Vous pouvez charger un fichier CSV dans DataTable.
Exemple de 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;
}
Assurez-vous de compiler votre projet sur un processeur x86. Cela ne fonctionne pas pour x64.
essayez filehelpers Fonctionne incroyablement bien. Je l'utilise pour analyser un fichier de 100 Mo chaque jour.
Avez-vous essayé la bibliothèque FileHelpers? C'est gratuit, open source et peut être utilisé pour analyser les fichiers CSV.
J'ai commencé à utiliser CSV Parser qui fait partie de CommonLibrary.NET .
Il utilise .NET 3.5, dispose d'une API simple et de surcharges / méthodes et lamda pratiques pour les itérations.
Je n'ai pas de benchmarks pour celui-ci comme ci-dessus, mais une bonne chose à ce sujet est qu'il ne s'agit que d'un composant d'une bibliothèque similaire à Java Commons. Je reçois donc également un analyseur de ligne de commande, une implémentation de référentiel entre autres.