
Cómo leer un archivo CSV en C#
Este artículo explorará cómo crear un lector de CSV en C# utilizando la biblioteca IronXL.
IronXL - Biblioteca de Excel
IronXL es una poderosa biblioteca de Excel que brinda 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 prioriza la velocidad, precisión y facilidad de uso. Permite guardar archivos de Excel en diferentes formatos y cargar varios formatos de hoja de cálculo en Excel para una lectura de datos eficiente.
IronXL admite formatos de libros de Excel con diferentes extensiones de archivo, incluidos CSV y TSV, XLS y XLSX, XSLT y XLSM. Es compatible con la última versión del .NET Framework, así como con todas las versiones anteriores hasta la 2.0. IronXL se puede utilizar en diversas plataformas, incluidas Linux, MacOS, Azure, Docker y AWS.
¿Cómo hacer un lector de CSV en C# usando IronXL?
Prerrequisitos
Para convertir datos de un archivo CSV a un archivo Excel y leerlo en C#, necesitamos las siguientes herramientas:
- Visual Studio: es un entorno de desarrollo integrado (IDE) esencial para trabajar en aplicaciones de 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. Sin embargo, otros IDE que admiten un entorno C# también pueden usarse si el desarrollador lo prefiere.
- Crear aplicación de consola: Siga los pasos para crear una aplicación de consola simple.
- Abra Visual Studio y haga clic en "Crear un proyecto".
Ventana de nuevo proyecto
- Elija "Aplicación de consola" de la lista de opciones disponibles. Asegúrese de que el lenguaje seleccionado sea C#.
Crear una nueva aplicación de consola
- A continuación, nombre su proyecto como desee.
Configuración
- El siguiente paso en la configuración del proyecto es seleccionar el .NET Framework. La última versión disponible es .NET 7.0, que se admite en el término estándar. Sin embargo, para evitar posibles errores, puede optar por la versión más estable de .NET 6.0, ya que Microsoft brinda soporte a largo plazo para ella. Es importante elegir la versión adecuada según sus requisitos específicos.
- IronXL - Es la biblioteca de .NET Excel que está diseñada para trabajar con hojas de cálculo de Excel. Debe instalarse en su aplicación C# antes de usarla. Puede descargar e instalar el paquete desde múltiples fuentes:
- NuGet - el administrador de paquetes para .NET. Puede descargar IronXL directamente desde el sitio web de NuGet.
- Administrador de paquetes NuGet de Visual Studio: Abra el Administrador de paquetes yendo a Herramientas > Administrador de paquetes NuGet > Administrar paquetes para la solución...
- _Descargue el archivo zip de .NET Excel DLL directamente desde el sitio web de Iron y agréguelas a la solución del proyecto como referencia de proyecto.
Agregar espacio de nombres IronXL
Una vez que tengas 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;Imports IronXLAbrir un archivo CSV existente
IronXL proporciona una manera fácil de leer archivos CSV en C#. Primero, abra un archivo CSV para lectura. Es un tipo de archivo que se basa en filas y columnas. Aquí, se utiliza la clase WorkBook junto con su método LoadCSV para abrir un archivo CSV. El código es el siguiente:
// Load the CSV file and convert it to XLSX format.
var csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");' Load the CSV file and convert it to XLSX format.
Dim csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")El método LoadCSV en IronXL te permite abrir un archivo CSV y convertirlo al formato XLSX. Este método ofrece opciones para especificar el delimitador de lista utilizado en el archivo CSV. En este ejemplo, se usa el delimitador predeterminado, que es una coma. El archivo resultante se abre y se puede procesar aún más utilizando las características de IronXL para leer y manipular hojas de cálculo de Excel.
Archivo CSV
Obtener la hoja de trabajo de la clase CSV Reader
En el paso anterior, el archivo CSV se abrió como un libro de Excel usando IronXL. Ahora, obtén la hoja de trabajo predeterminada del libro utilizando la clase WorkSheet. El siguiente ejemplo demuestra cómo obtener la hoja de trabajo para leer datos de CSV:
// Retrieve the default worksheet from the loaded workbook.
WorkSheet ws = csv.DefaultWorkSheet;' Retrieve the default worksheet from the loaded workbook.
Dim ws As WorkSheet = csv.DefaultWorkSheetPara obtener más información sobre cómo trabajar con hojas de Excel, puede visitar esta página de ejemplos de código.
Leer datos CSV usando C# DataTable
Una vez que el CSV se carga con éxito y los datos están disponibles como una hoja de trabajo, los datos se pueden leer del archivo CSV de manera muy fácil en un 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 trabajo a una tabla usando el método ToDataTable. El siguiente código ayuda a lograr esta tarea:
// Convert the worksheet data to a DataTable.
DataTable dt = ws.ToDataTable(true);' Convert the worksheet data to a DataTable.
Dim dt As DataTable = ws.ToDataTable(True)Comenzar a leer datos CSV
Ahora, itera a través de todos los registros utilizando la instancia DataTable. Los datos se reciben en filas y columnas. Primero, luego muévase a través de cada columna para obtener su valor. Para obtener todos los registros junto con la fila de encabezado, use el siguiente fragmento de código:
// Iterate over each row in the DataTable.
foreach (DataRow row in dt.Rows)
{
// Iterate over each column in the current row.
for (int i = 0; i < dt.Columns.Count; i++)
{
// Print each column value in the current row.
Console.Write(row[i] + " ");
}
// Move to the next line after printing all columns of the current row.
Console.WriteLine();
}' Iterate over each row in the DataTable.
For Each row As DataRow In dt.Rows
' Iterate over each column in the current row.
For i As Integer = 0 To dt.Columns.Count - 1
' Print each column value in the current row.
Console.Write(row(i) & " ")
Next i
' Move to the next line after printing all columns of the current row.
Console.WriteLine()
Next rowEn el código anterior, se utiliza un bucle foreach para obtener un solo registro de una colección de filas. Luego dentro de un bucle for anidado, se cuenta el número de columnas y finalmente, los datos de cada fila se imprimen en la pantalla. La salida está formateada de manera similar a un archivo CSV.
Salida
Resumen
Este artículo mostró cómo crear un lector de CSV en C# utilizando la biblioteca IronXL. Cargar archivos CSV se facilita con IronXL ya que admite el formato CSV en hojas de cálculo de Excel. El objeto DataTable se usa para crear un lector CSV elegante y formatear la salida para que coincida con el archivo original.
IronXL también proporciona una conveniente conversión entre diferentes formatos de archivo y permite crear archivos de Excel desde cero sin requerir que Interop y Microsoft Excel estén instalados. También es compatible con C# DataSet y DataTable, brindando a los desarrolladores flexibilidad para interconvertir datos sin depender de aplicaciones de terceros. Con sus características poderosas, IronXL es una herramienta valiosa para los desarrolladores de C# para trabajar con hojas de cálculo de Excel y manejar datos CSV de manera eficiente.
IronXL es gratis para desarrollo. Sin embargo, para el uso comercial, necesitas comprar su licencia comenzando desde $999. También puede usar su prueba gratuita para probar su compatibilidad de .dll compilado con su proyecto en modo de producción.

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.
Artículos Relacionados



