existe uma implementação boa e gratuita do analisador CSV disponível sob alguma licença liberal? Alguma contraparte do SuperCSV para Java, talvez uma porta?
existe uma implementação boa e gratuita do analisador CSV disponível sob alguma licença liberal? Alguma contraparte do SuperCSV para Java, talvez uma porta?
Respostas:
Há uma boa implementação no CodeProject :
Para fornecer mais números reais, com um arquivo CSV de 45 MB contendo 145 campos e 50.000 registros, o leitor estava processando cerca de 30 MB / s. Resumindo, demorou 1,5 segundos! As especificações da máquina eram P4 3,0 GHz, 1024 MB.
Microsoft.VisualBasic.FileIO.TextFieldParsee funcionou.
Você pode carregar um arquivo CSV para DataTable.
Código de amostra -
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;
}
Certifique-se de compilar seu projeto para o processador x86. Não funciona para x64.
tente filehelpers Funcionam incrivelmente bem. Estou usando-o para analisar um arquivo de 100 MB todos os dias.
Você já experimentou a biblioteca FileHelpers? É gratuito, de código aberto e pode ser usado para analisar arquivos CSV.
Comecei a usar o CSV Parser que faz parte do CommonLibrary.NET .
Ele usa .NET 3.5, tem uma API fácil e sobrecargas / métodos e lamda convenientes para iterações.
Não tenho nenhum benchmark para este como acima, mas o bom sobre isso é que é apenas um componente de uma biblioteca semelhante ao Java Commons. Portanto, também consigo um analisador de linha de comando, implementação de repositório, entre outras coisas.