Saltar al pie de página
USANDO IRONXL

Cómo usar una biblioteca CSV en C# para leer y escribir archivos

Trabajar con archivos CSV en C# a menudo va más allá de la simple lectura y escritura. Los desarrolladores necesitan un manejo confiable de archivos CSV, importación/exportación de datos fluida e integración sencilla con flujos de trabajo de hojas de cálculo. Mientras que bibliotecas gratuitas como CsvHelper cubren operaciones básicas de CSV, a veces no son suficientes cuando necesitas soporte de libros de Excel, alto rendimiento o manejo consistente de filas, columnas y tipos de datos.

IronXL resuelve estos desafíos al proporcionar una única biblioteca de .NET capaz de manejar formatos CSV y Excel de manera fluida, sin requerir Microsoft Office. Ofrece una funcionalidad robusta para leer y escribir CSV, mapear objetos de clase personalizados y convertir entre valores separados por comas y Excel. Todo en un flujo de trabajo de alto rendimiento y bajo consumo de memoria, adecuado tanto para aplicaciones de escritorio como web.

¿Cómo empezar a utilizar IronXL?

Instalar IronXL lleva solo segundos a través de NuGet Package Manager. Abre tu Consola del Administrador de Paquetes en Visual Studio y ejecuta:

Install-Package IronXL.Excel

Después de la instalación, agrega el espacio de nombres IronXL a tu archivo C#.

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

IronXL funciona en entornos Windows, Linux y macOS, soportando .NET Framework 4.6.2+ y .NET Core/5/6/7/8+. La biblioteca opera independientemente sin dependencias de Microsoft Office, lo que la hace ideal para implementaciones en servidores y aplicaciones en la nube. Para instrucciones detalladas de configuración, visita la guía de instalación de IronXL.

¿Cómo leer archivos CSV con IronXL?

IronXL soporta la lectura de archivos CSV con facilidad, siguiendo todo el proceso un patrón intuitivo. La biblioteca maneja automáticamente desafíos comunes como la detección de codificación y la identificación de delimitadores, problemas que los desarrolladores encuentran con frecuencia al analizar datos CSV:

// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");
// Access the imported worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Read specific cell values
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;
// iterating from row 1 to skip the header row
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}");
}
// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");
// Access the imported worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Read specific cell values
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;
// iterating from row 1 to skip the header row
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Este código carga un archivo CSV en un objeto WorkBook, el cual proporciona toda la funcionalidad de una hoja de cálculo. La propiedad DefaultWorkSheet brinda acceso inmediato a los datos CSV. Las celdas individuales se pueden acceder usando la notación familiar de Excel como "A2", con métodos de conversión de tipo incorporados (StringValue, DecimalValue, IntValue) asegurando un manejo adecuado de los datos. El bucle for demuestra la iteración de filas, tratando cada fila como una colección de celdas. Hemos usado un bucle que automáticamente saltará la primera fila ya que es una fila de encabezado; sin embargo, si deseas mantener tu encabezado como parte de la salida, solo usa:

foreach (var row in workSheet.Rows)
{
    Console.WriteLine($"{row.Columns[0].Value}, {row.Columns[1].Value}");
}
foreach (var row in workSheet.Rows)
{
    Console.WriteLine($"{row.Columns[0].Value}, {row.Columns[1].Value}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Para escenarios más complejos, explora el tutorial completo de lectura.

Resultado

Cómo usar una biblioteca CSV de C# para leer y escribir archivos: Figura 1 - Salida del archivo CSV leído

Para escenarios avanzados, los desarrolladores pueden mapear filas de CSV en objetos de clase personalizados iterando a través de cada fila y asignando valores de celda a propiedades de objeto. Este enfoque proporciona una manera limpia de trabajar con datos estructurados en C#.

¿Cómo escribir archivos CSV en C#?

Crear archivos CSV con IronXL admite múltiples enfoques, desde construir nuevas hojas de cálculo hasta convertir estructuras de datos existentes. Esta flexibilidad lo hace ideal para escenarios de exportación de datos:

// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");
// Add header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";
// Add data rows
workSheet["A2"].Value = "Widget";
workSheet["B2"].Value = 100;
workSheet["C2"].Value = 19.99;
// Save as CSV
workBook.SaveAsCsv("inventory.csv");
// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");
// Add header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";
// Add data rows
workSheet["A2"].Value = "Widget";
workSheet["B2"].Value = 100;
workSheet["C2"].Value = 19.99;
// Save as CSV
workBook.SaveAsCsv("inventory.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Este ejemplo crea un nuevo libro desde cero y lo llena con datos. El método SaveAsCsv() exporta la hoja de trabajo a formato CSV, manejando automáticamente el formato y los delimitadores adecuados. IronXL preserva los tipos de datos durante la exportación, asegurando que los números se mantengan numéricos en lugar de convertir todo a cadenas. El método SaveAsCsv admite delimitadores personalizados cuando sea necesario.

Resultado

Cómo usar una biblioteca CSV de C# para leer y escribir archivos: Figura 2 - Archivo CSV recién creado usando IronXL

Para datos existentes, IronXL puede convertir data tables directamente:

DataTable dataTable = GetDataFromDatabase();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("export");
workSheet.InsertDataTable(dataTable, "A1");
workBook.SaveAsCsv("export.csv");
DataTable dataTable = GetDataFromDatabase();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("export");
workSheet.InsertDataTable(dataTable, "A1");
workBook.SaveAsCsv("export.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

¿Puede IronXL convertir entre formatos CSV y Excel?

La característica destacada de IronXL es la conversión fluida entre formatos CSV y Excel. Esta capacidad elimina la necesidad de bibliotecas separadas al trabajar con diferentes tipos de archivo, un requisito común discutido por desarrolladores:

// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");
// Convert Excel to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");
// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");
// Convert Excel to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Estas conversiones preservan la integridad de los datos, incluyendo tipos numéricos, fechas y fórmulas cuando sea aplicable. Al convertir archivos Excel de múltiples hojas a CSV, IronXL crea archivos CSV separados para cada hoja de trabajo:

WorkBook multiSheetWorkBook = WorkBook.Load("multi_sheet.xlsx");
multiSheetWorkBook.SaveAsCsv("output.csv");
// Creates: output.Sheet1.csv, output.Sheet2.csv, etc.
WorkBook multiSheetWorkBook = WorkBook.Load("multi_sheet.xlsx");
multiSheetWorkBook.SaveAsCsv("output.csv");
// Creates: output.Sheet1.csv, output.Sheet2.csv, etc.
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

El proceso de conversión maneja características complejas de Excel con gracia. Las fórmulas se evalúan a sus valores, el formato se preserva cuando es posible, y las reglas de validación de datos se mantienen en el formato de Excel. Aprende más sobre la conversión de Excel a CSV en la documentación.

Cómo usar una biblioteca CSV de C# para leer y escribir archivos: Figura 3 - Archivo Excel multipágina guardado como archivos CSV separados

Y para ver cómo uno de estos archivos CSV resiste en comparación con el archivo .xlsx original, veamos el archivo output.Customers abierto en notepad vs. la hoja de Customers vista en Excel:

Cómo usar una biblioteca CSV de C# para leer y escribir archivos: Figura 4 - Archivo en formato Excel original vs. el archivo CSV convertido

Empiece con IronXL ahora.
green arrow pointer

¿Por qué elegir IronXL para el manejo de archivos CSV?

Al evaluar bibliotecas CSV de C#, los desarrolladores consideran factores como la facilidad de uso, la completitud de características y el soporte a largo plazo. IronXL aborda estas necesidades de manera completa:

Cómo usar una biblioteca CSV de C# para leer y escribir archivos: Figura 5 - Tabla comparativa de IronXL vs. bibliotecas solo para csv

Más allá de las operaciones básicas de CSV, IronXL proporciona características empresariales como el manejo de archivos protegidos por contraseña, la preservación del estilo de celda y el cálculo de fórmulas. La API unificada significa que los desarrolladores aprenden una biblioteca para todas las necesidades de hojas de cálculo, reduciendo la complejidad en proyectos que manejan múltiples formatos de archivo.

La compatibilidad multiplataforma asegura un comportamiento consistente en entornos de desarrollo y producción. El enfoque de código administrado de la biblioteca elimina las dependencias específicas de la plataforma, simplificando la implementación y el mantenimiento. Para comparaciones detalladas de características, consulta la página de características de IronXL.

Conclusión

IronXL agiliza todo el flujo de trabajo de lectura y escritura de archivos CSV, conversión entre Excel y CSV y manejo de características avanzadas de hojas de cálculo. Es más que solo otra biblioteca CSV, es un conjunto completo de herramientas de hoja de cálculo para desarrolladores de .NET.

Al combinar una API limpia, soporte integral y pruebas de grado empresarial, IronXL ayuda a los desarrolladores a evitar perder tiempo persiguiendo errores, parcheando con pull requests ad-hoc o dependiendo de paquetes de código abierto fragmentados.

Si tu proyecto requiere funcionalidad confiable y de alto rendimiento para hojas de cálculo, IronXL es la elección correcta. Te capacita para gestionar archivos, procesar datos y construir soluciones escalables, todo con estabilidad profesional y facilidad de uso.

¿Listo para simplificar tu manejo de CSV y Excel? Comienza con una prueba gratis comenzando desde $liteLicense, que incluye soporte profesional y actualizaciones continuas.

Preguntas Frecuentes

¿Qué es IronXL y cómo ayuda con archivos CSV en C#?

IronXL es una poderosa biblioteca de C# que permite a los desarrolladores leer, escribir y convertir archivos CSV sin problemas. Ofrece soporte extendido para libros de trabajo de Excel, asegurando alto rendimiento y manejo consistente de filas, columnas y tipos de datos.

¿Por qué debería usar IronXL en lugar de bibliotecas gratuitas como CsvHelper?

Aunque CsvHelper es excelente para operaciones básicas de CSV, IronXL sobresale con características como soporte para libros de trabajo de Excel, rendimiento mejorado y manejo robusto de tipos de datos, haciéndolo adecuado para flujos de trabajo de hojas de cálculo más complejos.

¿Puede IronXL manejar ambos formatos CSV y Excel?

Sí, IronXL está diseñado para manejar eficientemente ambos formatos, CSV y Excel, permitiéndote convertir entre ellos con facilidad.

¿IronXL admite manejo de datos de alto rendimiento?

IronXL está diseñado para alto rendimiento, asegurando procesos suaves de importación y exportación de datos con velocidad y eficiencia óptimas.

¿Es posible integrar IronXL con flujos de trabajo de hojas de cálculo existentes?

Absolutamente, IronXL se integra perfectamente con los flujos de trabajo de hojas de cálculo existentes, mejorando la capacidad de gestionar datos en formatos CSV y Excel.

¿Qué hace que IronXL sea adecuado para operaciones complejas de archivos CSV?

IronXL proporciona características robustas como manejo consistente de filas, columnas y tipos de datos, haciéndolo ideal para operaciones complejas de archivos CSV que requieren más que un manejo básico.

¿Puedo usar IronXL para convertir archivos CSV a Excel?

Sí, una de las características clave de IronXL es su capacidad para convertir archivos CSV a formato Excel y viceversa, racionalizando los procesos de gestión de datos.

¿Cómo asegura IronXL un manejo confiable de archivos CSV?

IronXL asegura un manejo confiable de archivos CSV a través de sus características avanzadas, que incluyen el soporte para tipos de datos complejos y la integración con funcionalidades de Excel.

¿Cuáles son los beneficios de usar IronXL para importación/exportación de datos?

IronXL ofrece procesos suaves de importación/exportación de datos, ahorrando tiempo y esfuerzo a los desarrolladores mientras asegura la integridad y precisión de los datos a través de los formatos.

¿Es fácil de usar IronXL para desarrolladores nuevos en operaciones de CSV en C#?

Sí, IronXL está diseñado con características fáciles de usar y ejemplos de código simples, haciéndolo accesible y fácil de usar para desarrolladores nuevos en operaciones de CSV en C#.

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