Saltar al pie de página
USANDO IRONXL

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 crear un lector 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:

  1. 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.
  2. 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".

Cómo leer un archivo CSV en C#, Figura 2: Ventana de nuevo 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#.

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

* A continuación, nombre su proyecto como desee.

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 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.
  1. 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:
    1. NuGet - el administrador de paquetes para .NET. Puede descargar IronXL directamente desde el sitio web de NuGet.
    2. 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...
  2. _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 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#. 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.
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:= ",")
$vbLabelText   $csharpLabel

El método LoadCSV en IronXL le permite abrir un archivo CSV y convertirlo a 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.

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

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, obtenga la hoja de cálculo 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.
WorkSheet ws = csv.DefaultWorkSheet;
' Retrieve the default worksheet from the loaded workbook.
Dim ws As WorkSheet = csv.DefaultWorkSheet
$vbLabelText   $csharpLabel

Para 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, cree una instancia de DataTable y convierta 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.
DataTable dt = ws.ToDataTable(true);
' Convert the worksheet data to a DataTable.
Dim dt As DataTable = ws.ToDataTable(True)
$vbLabelText   $csharpLabel

Comenzar a leer datos CSV

Ahora, recorra todos los registros utilizando la instancia de 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.
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 row
$vbLabelText   $csharpLabel

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

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

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 utiliza para crear un lector de CSV elegante y dar formato a 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 DataSet y DataTable de C#, 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 uso comercial, necesita comprar su licencia a partir de $799. También puede usar su prueba gratuita para probar su compatibilidad de .dll compilado con su proyecto en modo de producción.

Preguntas Frecuentes

¿Cómo se crea un lector de CSV en C# sin usar Interop?

Puede crear un lector de CSV en C# sin usar Interop aprovechando la biblioteca IronXL. Primero, instale IronXL a través de NuGet o descargue el DLL de Excel para .NET desde el sitio web de IronXL. Añada el namespace de IronXL en su código y use el método WorkBook.LoadCSV para cargar un archivo CSV, permitiéndole manipularlo como un libro de Excel.

¿Cuáles son los beneficios de usar IronXL para operaciones con CSV en C#?

IronXL proporciona una solución poderosa y flexible para manejar operaciones con CSV en C#. Permite a los desarrolladores cargar, leer y convertir archivos CSV al formato Excel sin necesidad de Microsoft Excel o Interop, haciéndolo compatible con varias plataformas como Linux, MacOS y servicios en la nube como Azure y AWS.

¿Cómo se puede convertir datos CSV a formato Excel usando IronXL?

Para convertir datos CSV a formato Excel usando IronXL, cargue el archivo CSV con el método WorkBook.LoadCSV y luego guárdelo usando el método WorkBook.SaveAs, especificando el formato de Excel deseado como XLSX.

¿Es posible leer datos de CSV en un DataTable en C# utilizando IronXL?

Sí, puede leer datos de CSV en un DataTable en C# utilizando IronXL. Cargue el CSV como un libro, acceda a la hoja de trabajo predeterminada y use el método Range.ToDataTable para convertir los datos de la hoja de trabajo en un DataTable para fácil manipulación e iteración.

¿Qué plataformas son compatibles con la biblioteca IronXL?

La biblioteca IronXL es compatible con múltiples plataformas, incluyendo Windows, Linux, MacOS, Azure, Docker y AWS. Este soporte multiplataforma la convierte en una opción versátil para los desarrolladores que trabajan en diversos entornos.

¿Se puede usar IronXL para proyectos comerciales?

Sí, IronXL se puede usar para proyectos comerciales. Aunque ofrece una prueba gratuita para desarrollo y pruebas, se requiere una licencia comercial para uso en producción. Esta licencia proporciona acceso a toda la gama de características y soporte.

¿Cómo mejora IronXL la manipulación de datos de CSV en aplicaciones C#?

IronXL mejora la manipulación de datos de CSV en aplicaciones C# al permitir a los desarrolladores cargar y editar archivos CSV sin depender de Microsoft Excel. Proporciona métodos para la conversión entre formatos CSV y Excel, haciendo la gestión de datos más flexible y eficiente.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más