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

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
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.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *