Cómo leer un fichero CSV (comma-separated values o valores separados por coma) mediante el lenguaje de programación C# de Visual Studio .Net C Sharp y mostrar su contenido en un DataGridView. También explicamos cómo hacer el proceso inverso, cómo guardar el contenido de un DataGridView en un fichero CSV. Incluimos la descarga gratuita del código fuente completo de la aplicación de ejemplo.

Requisitos para realizar aplicación en C# que lea y escriba ficheros CSV

El único requisito es disponer del IDE de desarrollo Visual Studio .Net, de Microsoft. En nuestro caso usaremos la versión gratuita de este entorno de desarrollo. En el siguiente enlace explicamos cómo descargarla e instalarla:

La aplicación permitirá tanto leer (importar) un fichero CSV existente en el equipo y mostrar su contenido en una rejilla de datos, como guardar (exportar) el contenido de dicha rejilla en un fichero CSV. Por lo tanto necesitaremos permisos de lectura y escritura en la carpeta donde queramos leer o escribir los ficheros CSV.

Si únicamente queremos leer ficheros CSV, estos existirán en alguna ubicación del equipo y serán accesibles desde el usuario con el que hemos ejecutado la aplicación.

Los ficheros CSV que la aplicación puede leer son muy heterogéneos, dado que admite indicar el carácter separador de campos, así como el carácter separador de valores. Por ejemplo, el contenido de un fichero CSV puede ser:

Como podemos observar en el ejemplo, el carácter separador de campos es el punto y coma «;» y el carácter separador de valores es la comilla doble «.

Crear aplicación .Net C# para leer y escribir ficheros CSV

Crearemos un nuevo proyecto, de tipo «Aplicación de Windows Forms (.NET Framework)»:

Crear aplicación .Net C# para leer y escribir ficheros CSV

Introduciremos el nombre para la aplicación, en nuestro caso «ProyectoALeerCSV», así como la ubicación de los ficheros del proyecto. Elegiremos la versión de .NET Framework por defecto, en nuestro caso 4.7.2 y pulsaremos en «Crear»:

Crear aplicación .Net C# para leer y escribir ficheros CSV

Agregaremos los componentes visuales al formulario:

  • TextBox: para introducir la ruta y el nombre del fichero CSV a leer y a guardar en la exportación a CSV.
  • Button: para mostrar ventana de selección de fichero CSV, para leer CSV y para exportar a CSV.
  • DataGridView: donde mostraremos los datos del fichero CSV. Este DataGridView será editable, el usuario podrá modificar los datos cargados del CSV y añadir nuevas líneas.
  • Varios TextBox más para establecer el carácter separador de campos y el carácter separador de valores, tanto para la importación de CSV como para la exportación.
  • Un CheckBox para indicar si la primera línea de datos del fichero CSV contiene el nombre del título de las columnas.

Agregaremos estos componentes desde el Cuadro de herramientas:

Crear aplicación .Net C# para leer y escribir ficheros CSV

El formulario quedará con este aspecto visual:

Crear aplicación .Net C# para leer y escribir ficheros CSV

Programaremos cada botón con su código fuente correspondiente. Para el caso del botón de selección del fichero CSV, que mostrará una ventana de diálogo solicitando la ubicación del fichero CSV, añadiremos el siguiente código:

Para el caso del botón de lectura del fichero CSV seleccionado, que se leerá su contenido y lo mostrará en el DataGridView, añadiremos el siguiente código en su evento Click btLeerCSV_Click:

Dicho botón hace referencia al procedimiento CargarDatosCSV, que tendrá el siguiente código:

El botón de selección de fichero para guardar el resultado del DataGridView, btSelFicheroExportarCSV, en su evento Click:

El botón para exportar el contenido del DataGridView, btExportarCSV, en su evento Click, tendrá el siguiente código:

La aplicación ProyectoA Leer Ficheros CSV en funcionamiento

La aplicación permite leer ficheros CSV con cualquier carácter separador de campos y cualquier carácter separador de valores, dado que se pueden especificar estos dos valores antes de realizar la lectura del fichero CSV. Por ejemplo, si la estructura del fichero CSV es como esta:

Indicaremos en la aplicación, en el campo «Carácter separador de campos», introduciremos punto y coma «;» y en el campo «Carácter separador de valores», introduciremos comillas dobles «. Si la primera línea contiene el nombre de los títulos de las columnas marcaremos «La primera línea contiene los títulos de las columnas». Seleccionaremos el fichero CSV que queramos leer y pulsaremos en «Leer»:

La aplicación ProyectoA Leer Ficheros CSV en funcionamiento

Una vez leído el fichero CSV y mostrado en el grid, podremos modificar las líneas, añadir nuevas líneas o eliminar alguna de las existentes (seleccionándola y pulsando en Control + Suprimir) :

Una vez realizadas las modificaciones, si queremos guardar el contenido del grid en un fichero CSV, elegiremos el fichero en «Exportar grid a fichero CSV» y pulsaremos en «Exportar». El contenido del grid se guardará en un fichero CSV con los caracteres separador de campos y separador de valores indicados:

La aplicación ProyectoA Leer Ficheros CSV en funcionamiento

Descarga del código fuente completo de la aplicación ProyectoA Leer Ficheros CSV en funcionamiento

A continuación dejamos enlace para la descarga del código fuente completo en C# (C Sharp), con Microsoft Visual Studio Community 2019 Community: