USO DE IRONXL

Cómo leer archivos CSV en C#

Chaknith Bin
Chaknith Bin
19 de abril, 2023
Actualizado 24 de marzo, 2024
Compartir:

Este artículo explorará cómo crear un Lector CSV en C# utilizando la librería IronXL.

IronXL - Biblioteca Excel

IronXL es una poderosa biblioteca de Excel que ofrece a los desarrolladores de C# la capacidad de crear, cargar, leer y editar hojas de cálculo de Excel en varios formatos. Diseñado específicamente para .NET, IronXL da prioridad a la velocidad, la precisión y la facilidad de uso. Permite guardar archivos de Excel en diferentes formatos y cargar varios formatos de hojas de cálculo en Excel para una lectura de datos eficiente.

IronXL admite formatos de libros de Excel con distintas extensiones de archivo, como CSV y TSV, XLS y XLSX, XSLT y XLSM. Es compatible con la última versión de .NET Framework, así como con todas las versiones anteriores hasta la 2.0. IronXL puede utilizarse en varias plataformas, como Linux, macOS, Azure, Docker y AWS.

¿Cómo hacer un lector CSV en C# usando IronXL?

Requisitos previos

Para convertir datos de un archivo CSV a un archivo Excel y leerlos en C#, necesitamos las siguientes herramientas:

  1. Visual Studio: es un entorno de desarrollo integrado (IDE) esencial para trabajar en aplicaciones C# .NET. Es el IDE oficial y recomendado para desarrollar aplicaciones en C#, y se puede descargar e instalar desde el sitio web de Microsoft. No obstante, si el desarrollador lo prefiere, también pueden utilizarse otros IDE que admitan un entorno C#.

  2. Crear aplicación de consola: Siga los pasos para crear una aplicación de consola sencilla.

    • Abra Visual Studio y haga clic en "Crear un proyecto".

    Cómo leer un archivo CSV en C#, Figura 2: Ventana de nuevo proyecto

    Ventana de Nuevo Proyecto

    • Elija "Aplicación de consola" en la lista de opciones disponibles. Asegúrese de que el lenguaje seleccionado es C#.

    Cómo leer un archivo CSV en C#, Figura 3: Crear una nueva aplicación de consola

    Cree una nueva Aplicación de Consola

    • A continuación, ponle el nombre que quieras a tu proyecto.

    Cómo leer un archivo CSV en C#, Figura 4: Configuración

    Configuración

    • El siguiente paso en la configuración del proyecto es seleccionar .NET Framework. La última versión disponible es .NET 7.0, compatible con el plazo estándar. Sin embargo, para evitar posibles errores, puede optar por la versión más estable de .NET 6.0, ya que Microsoft ofrece soporte a largo plazo para ella. Es importante elegir la versión adecuada en función de sus necesidades específicas.
  3. IronXL - Es la biblioteca de Excel para .NET que está diseñada para trabajar con hojas de cálculo de Excel. Debe instalarlo en su aplicación C# antes de utilizarlo. Puede descargar e instalar el paquete desde varias fuentes:

    1. NuGet - el gestor de paquetes para .NET. Puede descargar IronXL directamente desde el sitio web de NuGet.

    2. Visual Studio NuGet Package Manager: Abre el Administrador de Paquetes yendo a Herramientas > Administrador de Paquetes NuGet > Administrar paquetes para la solución...**

    3. Descargue el archivo zip de .NET Excel DLL de IronXL directamente desde el sitio web de Iron y agréguelo a la Solución del Proyecto como una referencia del proyecto.

Añadir espacio de nombres IronXL

Una vez que tenga los requisitos previos, el siguiente paso es agregar el espacio de nombres IronXL en la parte superior del código fuente en el archivo main.cs:

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

Abrir un archivo CSV existente

IronXL proporciona una manera fácil de leer archivos CSV en C#. En primer lugar, abra un archivo CSV para leerlo. Es un tipo de archivo basado en filas y columnas. Aquí, la clase WorkBook se usa junto con su método LoadCSV para abrir un archivo CSV. El código es el siguiente:

var csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
var csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
Dim csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
$vbLabelText   $csharpLabel

El método LoadCSV en IronXL te permite abrir un archivo CSV y convertirlo al formato XLSX. Este método proporciona opciones para especificar el delimitador de lista utilizado en el archivo CSV. En este ejemplo, se utiliza el delimitador por defecto, que es una coma. El archivo resultante se abre y puede seguir procesándose utilizando las funciones de IronXL para leer y manipular hojas de cálculo de Excel.

Cómo leer un archivo CSV en C#, Figura 5: Archivo CSV

Archivo CSV

Obtener hoja de cálculo de la clase CSV Reader

En el paso anterior, el archivo CSV se abrió como un libro de Excel utilizando IronXL. Ahora, obtén la hoja de trabajo predeterminada del libro de trabajo usando la clase WorkSheet. El siguiente ejemplo muestra cómo obtener la hoja de cálculo para leer datos CSV:

WorkSheet ws = workbook.DefaultWorkSheet;
WorkSheet ws = workbook.DefaultWorkSheet;
Dim ws As WorkSheet = workbook.DefaultWorkSheet
$vbLabelText   $csharpLabel

Para obtener más información sobre cómo trabajar con hojas de cálculo de Excel, puede visitar esta página de ejemplos de código.

Leer datos CSV usando C# DataTable

Una vez que el CSV se ha cargado correctamente y los datos están disponibles como una hoja de cálculo, los datos se pueden leer desde el archivo CSV muy fácilmente en una DataTable de C#.

Convertir hoja de cálculo en tabla de datos

Primero, crea una instancia de DataTable y convierte los datos de la hoja de cálculo a una tabla utilizando el método ToDataTable. El siguiente código ayuda a realizar esta tarea:

DataTable dt = ws.ToDataTable(true);
DataTable dt = ws.ToDataTable(true);
Dim dt As DataTable = ws.ToDataTable(True)
$vbLabelText   $csharpLabel

Iniciar la lectura de datos CSV

Ahora, recorra todos los registros utilizando la instancia de DataTable. Los datos se reciben en filas y columnas. Primero, desplázate por cada columna para obtener su valor. Para obtener todos los registros junto con la fila de cabecera, utilice el siguiente fragmento de código:

foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  "); //format output 
    }
    Console.WriteLine();
}
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  "); //format output 
    }
    Console.WriteLine();
}
For Each row As DataRow In dt.Rows 'access rows
	For i As Integer = 0 To dt.Columns.Count - 1 'access columns of corresponding row
		Console.Write(row (i) & "  ") 'format output
	Next i
	Console.WriteLine()
Next row
$vbLabelText   $csharpLabel

En el código anterior, se utiliza un bucle foreach para obtener un único registro de una colección de filas. A continuación, dentro de un bucle for anidado, se cuenta el número de columnas y, por último, se imprimen en pantalla los datos de cada fila. El formato de salida es similar al de un archivo CSV.

Cómo leer un archivo CSV en C#, Figura 6: Salida

Salida

Resumen

Este artículo muestra cómo crear un lector CSV en C# utilizando la librería IronXL. Cargar archivos CSV es fácil con IronXL ya que soporta el formato CSV en hojas de cálculo Excel. El objeto DataTable se utiliza para crear un lector de CSV elegante y formatear la salida para que coincida con el archivo original.

IronXL también proporciona una conversión conveniente entre diferentes formatos de archivos y permite crear archivos de Excel desde cero sin necesidad de instalar Interop y Microsoft Excel. También es compatible con C# DataSet y DataTable, proporcionando a los desarrolladores flexibilidad para interconvertir datos sin depender de aplicaciones de terceros. Con sus potentes funciones, IronXL es una valiosa herramienta para que los desarrolladores de C# trabajen con hojas de cálculo Excel y manejen datos CSV de forma eficaz.

IronXL es gratuito para el desarrollo. Sin embargo, para uso comercial, necesitas adquirir su licencia a partir de $749. También puedes utilizar su prueba gratuita para probar la compatibilidad del .dll compilado con tu proyecto en modo de producción.

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.
< ANTERIOR
Cómo convertir un conjunto de datos a Excel en C#
SIGUIENTE >
Cómo Obtener el Valor de una Celda de un Archivo Excel en C#