Leer archivos CSV sin encabezado utilizando CSVHelper.
Tengo muchos archivos CSV sin encabezado y necesito leerlos en C#. Manualmente agregué un encabezado a uno de estos archivos y con el siguiente código utilizando CSVHelper puedo leer los archivos y mostrarlos en un GridView.
Ahora mi pregunta es, ¿cómo puedo leer estos archivos sin un encabezado? ¿O cómo puedo agregar un encabezado (un nuevo registro) utilizando CSVHelper en la primera línea?
public Form1()
{
InitializeComponent();
List<festival> records;
var config = new CsvConfiguration(CultureInfo.InvariantCulture) { Delimiter = ";" };
using (var reader = new StreamReader(@"File8.csv"))
using (var csv = new CsvReader(reader, config))
{
records = csv.GetRecords<festival>().ToList();
}
dataGridView1.DataSource = records;
}
Clase
public class Festival
{
public string Day { get; set; }
public string Start { get; set; }
public int Lenght { get; set; }
public string FilmName { get; set; }
public float Rating { get; set; }
}
Ejemplo de CSV
csv
Mi;22:15;110;A;8
Mi;19:00;106;B;8
Mi;19:15;97;C;8.2
davy.ai
Para leer un archivo CSV sin encabezado en C# utilizando CSVHelper, puedes definir un ClassMap que mapee los nombres de las columnas a las propiedades de tu objeto. En este caso, puedes crear un ClassMap personalizado para tu clase
Festival
de la siguiente manera:Luego, en tu código, puedes usar esta clase de mapeo en lugar de depender de la información del encabezado:
Esto te permitirá leer los archivos CSV incluso sin una fila de encabezado.
Si deseas agregar una fila de encabezado a tu archivo, puedes escribirlo utilizando un
CsvWriter
y luego anexar el resto del archivo. Aquí tienes un ejemplo:Esto creará un nuevo archivo con una fila de encabezado que coincida con las propiedades de tu clase
Festival
. Luego puedes anexar el resto de tus datos CSV a este archivo.