Respuestas:
Pruebe CsvHelper . Es tan fácil de usar como FastCsvReader y también escribe. He estado muy contento con FastCsvReader en el pasado, pero necesitaba algo que también escribiera y no estaba contento con FileHelpers.
Leyendo:
var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
Escritura:
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
Divulgación completa: soy el autor de esta biblioteca.
WriteField
. Consulte los documentos aquí joshclose.github.io/CsvHelper
CsvHelper
. ¿Quizás podría ofrecer algunas estrategias de lectura alternativas en ese lugar? Por cierto,
Hay un par de opciones, justo en el propio marco.
Una de las más fáciles es hacer referencia a Microsoft.VisualBasic y luego usar TextFieldParser . Es un lector de CSV completamente funcional en el marco principal.
Otra buena alternativa es utilizar conjuntos de datos para leer archivos CSV .
Sebastien Lorion tiene un gran CSV
lector de CodeProject llamado A Fast CSV Reader . Probablemente uno de los mejores para C # y es gratis.
En cuanto a la escritura, solo use StreamWriter
.
Aquí hay un código repetitivo para escribir DataGridView
en un archivo:
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();
}
};
}
}
Sí, aunque supongo que en realidad estás pidiendo detalles.
Prueba FileHelpers
Hay docenas.
http://www.filehelpers.net/ es uno de los más comunes.
Debo decir que los Filehelpers me parecen restrictivos en algunos escenarios y, en su lugar, uso The Fast CSV Reader . En mi experiencia, si no conoce el formato de su archivo CSV o la asignación de importación hasta el tiempo de ejecución, esta es la mejor biblioteca para usar.
.net csv library
. La evidencia, aunque anecdótica, de mi afirmación es que esta pregunta se ha visto más de 22000 veces en los últimos seis años.