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.
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.
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.
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.
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.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.