C# (C Sharp)

Leer e interpretar un CSV con C#

En este post te voy a enseñar cómo parsear, leer o interpretar un archivo CSV (archivo separado por comas) en C#, de modo que leas cada fila y después puedas acceder a cualquier columna.

Te voy a mostrar cómo leer un CSV de manera manual, sin usar librerías ni cosas de ese estilo. Todo será a mano leyendo el archivo línea por línea, separándolo y convirtiendo los valores.

Al final sabrás cómo leer un archivo separado por comas en C# usando Visual Studio o cualquier otro editor.

El archivo

Comencemos viendo el CSV que vamos a leer:

Descripción,Precio,Existencia
Pringles habanero,30.5,10
Cheetos 30 gr,15.20,5
Galletas,200,50

En este caso es un archivo de productos con descripción, precio y existencia. Básicamente un archivo separado por comas que tiene 3 columnas.

Por cierto, los CSV van separados por coma, pero si tú tienes un distinto separador este programa también funcionará, solo debes cambiar el carácter separador.

Abriendo archivo

Al final de cuentas, nuestro CSV es un archivo, así que lo vamos a leer como normalmente leemos un archivo con C#:

string ubicacionArchivo = "C:\\Users\\parzibyte\\Desktop\\productos.csv";
System.IO.StreamReader archivo = new System.IO.StreamReader(ubicacionArchivo);

Y después de eso lo vamos a leer línea por línea.

Separando línea

Ahora que ya tenemos la línea debemos separarla por comas, usando el delimitador definido anteriormente; para ello usamos Split.

Recuerda que este código va a repetirse por cada línea en el archivo.

Nota: puedes cambiar la variable separador al separador que use el CSV, en este caso es una coma.

string[] fila = linea.Split(separador);

Ya tenemos nuestra línea como un arreglo, en donde los valores ya están separados. Ahora solo falta acceder a ellos. Recuerda el orden de las columnas pues esto es importante.

string descripcion = fila[0];
double precio = Convert.ToDouble(fila[1]);
double existencia = Convert.ToDouble(fila[2]);

Como puedes ver tenemos los 3 valores en un arreglo de C#, ahora accedemos a ellos. Al inicio todos son cadenas, pero como tenemos el precio y existencia debemos convertirlos a Double.

Y de este modo es como leemos la fila del CSV con C sharp. Ahora ya puedes hacer cualquier otra cosa con estos valores.

Poniendo todo junto

Leer CSV con C# en Visual Studio – Interpretar archivo separado por comas

El código completo queda como se ve a continuación. Recuerda leer los enlaces que te dejé en el post por si quieres profundizar en cómo leer el archivo o separar la línea.

using System;

namespace LeerArchivoDeTextoCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
                https://parzibyte.me/blog
             */            string ubicacionArchivo = "C:\\Users\\parzibyte\\Desktop\\productos.csv";
            System.IO.StreamReader archivo = new System.IO.StreamReader(ubicacionArchivo);
            string separador = ",";
            string linea;
            // Si el archivo no tiene encabezado, elimina la siguiente línea
            archivo.ReadLine(); // Leer la primera línea pero descartarla porque es el encabezado
            while ((linea = archivo.ReadLine()) != null)
            {
                string[] fila = linea.Split(separador);
                string descripcion = fila[0];
                double precio = Convert.ToDouble(fila[1]);
                double existencia = Convert.ToDouble(fila[2]);
                Console.WriteLine("Producto {0} con precio {1} y existencia {2}", descripcion, precio, existencia);
            }
        }
    }
}

He grabado un vídeo explicando todo este código:

Finalmente te dejo con más tutoriales de C# en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.