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

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

3 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

3 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

3 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

3 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

3 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

4 días hace

Esta web usa cookies.