Existe alguma biblioteca de leitores / gravadores CSV em C #?
Existe alguma biblioteca de leitores / gravadores CSV em C #?
Respostas:
Experimente o CsvHelper . É tão fácil de usar quanto FastCsvReader e também escreve. Estive muito feliz com FastCsvReader no passado, mas precisava de algo que também escrevesse e não estava feliz com FileHelpers.
Lendo:
var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
Escrevendo:
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
Divulgação completa: eu sou o autor desta biblioteca.
WriteField
. Verifique os documentos aqui joshclose.github.io/CsvHelper
CsvHelper
. Talvez pudesse oferecer algumas estratégias alternativas de leitura naquele local? A propósito, excluí meu comentário original, pois agora é irrelevante :-)
Existem algumas opções, bem na própria estrutura.
Uma das mais fáceis é fazer referência a Microsoft.VisualBasic e, em seguida, usar TextFieldParser . É um leitor CSV totalmente funcional na estrutura principal.
Outra boa alternativa é usar conjuntos de dados para ler arquivos CSV .
Sebastien Lorion tem um ótimo CSV
leitor no CodeProject chamado A Fast CSV Reader . Provavelmente um dos melhores para C # e é grátis.
Quanto à escrita, apenas use StreamWriter
.
Aqui está um código padrão para escrever um DataGridView
em um arquivo:
private void exportDGVToCSV(string filename)
{
if (dataGridView1.Columns.Count != 0)
{
using (Stream stream = File.OpenWrite(filename))
{
stream.SetLength(0);
using (StreamWriter writer = new StreamWriter(stream))
{
// loop through each row of our DataGridView
foreach (DataGridViewRow row in dataGridView1.Rows)
{
string line = string.Join(",", row.Cells.Select(x => $"{x}"));
writer.WriteLine(line);
}
writer.Flush();
}
};
}
}
Sim - embora eu presuma que você está realmente pedindo detalhes?
Experimente FileHelpers
Existem dezenas.
http://www.filehelpers.net/ é um dos mais comuns.
Devo dizer que acho o Filehelpers restritivo em alguns cenários e, em vez disso, uso o Fast CSV Reader . Na minha experiência, se você não souber o formato do seu arquivo CSV ou importar o mapeamento até o tempo de execução - esta é a melhor biblioteca para usar.
.net csv library
. A evidência, embora anedótica, para minha afirmação é que esta pergunta foi vista mais de 22.000 vezes nos últimos seis anos.