Ir al contenido principal

Leer un archivo CSV con C#

Muchas veces cuando programamos una aplicación es necesario interactuar con otros archivos o crearlos, uno de los archivos estándar mas utilizados para crear archivos en base a una base de datos o sobre todo tipo de archivos es el XML por ser el estándar, sin embargo existen otras alternativas mas específicamente cuando queremos manejar archivos creados desde una BD en Excel que es uno de los software que mas empresas manejan para uso de documentos que involucren datos o cantidades, por ser el estándar en el mercado de Software de este tipo, es verdad que el XML es mas complejo tiene una mejor y mas solida estructura pero puede darse el caso que necesitemos algo mas.

Los CSV (Comma Separated Value) son como su nombre lo dice archivos de texto cuya separación se especifica con una coma, si quieres investigar un poco mas sobre su estructura puedes buscar un poco mas de ellos en Google, pero ahora veamos como leer un archivo de este tipo.


Tutorial C#

Esta necesidad surgió hacia mi debido a que en un proyecto tuve que utilizarlos debido a que debía encargarse de manejar una gran cantidad de datos que en un XML seria un tamaño enorme y el dispositivo móvil tenia muchas limitaciones en cuanto a memoria, una vez dicho esto pasemos al código:


Primero que nada necesitamos el método que se encargara de leer el archivo, de texto y darle su respectiva estructura, en este caso al leer el archivo lo almacenaremos en un Datatable para poder posteriormente cargar un Grid o hacer cualquier cosa que necesitemos.

Este código lo encontré en varios sitios de Internet y era el mismo en todos los sitios donde lo busque, incluso es el mismo patrocinado por Microsoft para manejar estos archivos, pero yo tuve un pequeño problema con lo que seguía para utilizarlo el y aquí va mi modificación para resolverlo. Yo necesitaba cargar un Gridview y que la primera fila me la reconociera como el Nombre de cada una de las columnas sin embargo esto por si solo no lo hacia así que aplique un pequeño truco, como yo sabia que Nombre tendría mi primera columna agregue al código ese nombre para que tomara eso como una indicación de que esa fila contenía el nombre de las columnas así fue como quedo al final:


Una vez ejecutada esta instrucción nuestro DataTable habrá sido llenado con lo que este dentro del CSV, aunque debe tener una estructura del tipo tabla, mismo numero de columnas en todas las filas sobre todo, espero les haya sido de utilidad, saludos.

Quizás también te Interese:



Comentarios

  1. Hay otra forma mucho más sencilla de saltarte la primera fila y sin tener que saber como se llama la primera columna

    for (int n = 1; n < listaCSV.Count;n++ )
    {
    string[] row = listaCSV[n];
    dt.Rows.Add(row);
    }

    Un saludo y gracias por la info

    ResponderEliminar
    Respuestas
    1. Igualmente gracias por compartir esa información, aun no lo he probado esperemos que alguien mas nos confirme que le funciona correctamente, saludos.

      Eliminar
  2. Buena tarde, me gustaría ver el codigo completo porque me está generando error en la parte del Try. Gracias

    ResponderEliminar
  3. El código funcionaria solo si el CSV no contiene cadenas de caracteres que contenga el carácter de separación.

    Ejm;
    CAMPO1, CAMPO2,CAMPO3
    V1,"Esto dará tres valores, en ves de uno, por tener comas",V3

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Crear un Sistema con conexión a BD paso a paso C#

Primero que nada esta estoy en un proceso de re-estructuración del Blog, anteriormente los artículos eran vagos con poca información y poco explícitos donde solo publicaba los enlaces de descarga de los proyectos, para cambiar esto ahora empezare a publicar soluciones completas, mejor estructurado el contenido de mis artículos y aunque no prometo hacerlo muy seguido debido a que pocas veces tengo tiempo, prometo que los contenidos serán de mayor calidad y mas útiles. Para demostrar esto primero que nada publicare una de las mayores herramientas que un programador novato y con un poco de experiencia pueden tener, la conexión con una BD, en este caso SQL Server que es la que mejor se integra con Visual Studio y la Plataforma .NET, empecemos.

Llenar un DropdownList con Datos ASP.NET C#

En Asp.net llenar un Dropdownlist es un poco distinto a cuando llenamos un Combobox en una aplicación de Windows Form, aunque son muy similares un Combobox tiene distintas funciones y por lo tanto diferentes propiedades, que cambian en un control DropdownList de ASP.NET y es necesario identificar cuales son y cual es la forma correcta de llenar un DropdownList, en este ejemplo lo haremos utilizando no datos estáticos sino que aprenderemos como hacerlos con datos de una consulta en SQL, lo demás a continuación.

Chart en C# - Control para Graficos en Windows Form

El siguiente articulo es un pequeño tutorial sobre como utilizar el Control "Chart" de .NET para crear gráficos en una aplicación, en este caso una aplicación para Windows, para su funcionamiento es simple y permite ayudarnos para crear gráficos en alguna de nuestras aplicaciones donde sea necesario este tipo de implementacion, así que tendremos que crear un proyecto nuevo del tipo Windows Form donde necesitaremos principalmente los siguientes componentes: - 3 Controles Textbox para ingresar los valores al gráfico. - 2 Botones para las 2 diferentes acciones que realizaremos. - 1 Control Chart que si no lo ubican se encuentra en la sección Data de su Visual Studio o Visual C# Express.
De tal forma que el resultado sea similar al de la imagen mostrada, ahora pasaremos al código para el primer botón que se encargara de asignar los valores al control Chart.