Cómo trabajar con archivos de Excel en C#
Trabajar con archivos de Microsoft Excel en lenguajes de programación se ha convertido en un requisito significativo en el paradigma moderno de la programación de hoy. La generación de Excel es necesaria para la automatización, el análisis de datos, la medición de productividad, informes, etc. IronXL de Iron Software es una potente biblioteca de C# que permite a los desarrolladores leer, escribir y manipular documentos de Excel sin necesidad de tener Microsoft Excel instalado en la máquina en cualquier aplicación, como servicios web, consola, escritorio, etc. Esto lo convierte en una excelente opción para aplicaciones que necesitan manejar datos de Excel de manera eficiente y efectiva. En este artículo, exploraremos cómo usar IronXL para trabajar con archivos de Excel en C#.
Cómo trabajar con un libro de Excel en C
- Crear un proyecto de Visual Studio y agregar el paquete NuGet de IronXL.
- Crear un archivo de Excel sin Interop.
- Añadir estilo al archivo de Excel utilizando IronXL.
- Leer valores de Excel y calcular.
- Convertir Excel a HTML para uso web.
Presentamos la biblioteca IronXL
IronXL es una robusta biblioteca para .NET que simplifica el trabajo con archivos de Excel. IronXL es una poderosa biblioteca .NET diseñada para crear, leer y editar archivos Excel sin esfuerzo. Cuenta con una API intuitiva que simplifica el trabajo con documentos de Excel, compatible con varios formatos como XLS, XLSX y CSV. Esta versatilidad permite la manipulación fácil de valores de celda, fórmulas y formatos. IronXL está optimizado para el rendimiento y es capaz de manejar eficientemente archivos grandes y operaciones de datos complejas mientras asegura un uso eficiente de memoria. Su compatibilidad multiplataforma mejora su utilidad, haciendo de IronXL una herramienta invaluable para desarrolladores en diferentes sistemas operativos. Aquí se encuentran algunas de sus características y beneficios clave:
Características principales
Importación y Exportación:
- Importar Datos: Compatible con los formatos XLS, XLSX, CSV y TSV.
- Exportar Datos: Puede exportar hojas de trabajo a formatos XLS, XLSX, CSV, TSV y JSON.
Manipulación de Datos:
- Integración con System.Data: Trabajar con hojas de cálculo como objetos
System.Data.DataSetySystem.Data.DataTable. - Fórmulas: Soporta fórmulas de Excel, que se recalculan cada vez que una hoja se edita.
- Integración con System.Data: Trabajar con hojas de cálculo como objetos
Estilo y Formato:
- Estilo de Celda: Personalizar fuente, tamaño, patrón de fondo, borde, alineación y formatos numéricos.
- Rango: Configuración de rango intuitiva con sintaxis
WorkSheet["A1:B10"].
Seguridad:
- Encriptación: Encriptar y desencriptar archivos XLSX, XLSM y XLTX con contraseñas.
- Compatibilidad Multiplataforma:
- Funciona con .NET Framework, .NET Core, .NET Standard y Azure.
- Compatible con Windows, macOS, Linux, Docker, Azure y AWS.
Beneficios
- No Necesita Microsoft Office: IronXL no requiere Microsoft Office para ser instalado, haciéndolo ligero y fácil de implementar.
- Facilidad de Uso: La API es intuitiva y fácil de usar, permitiendo a los desarrolladores integrar rápidamente la funcionalidad de Excel en sus aplicaciones.
- Rendimiento: IronXL está optimizado para el rendimiento, asegurando un procesamiento rápido y eficiente de archivos Excel grandes.
- Versatilidad: Adecuado para una amplia gama de aplicaciones, incluyendo soluciones web, de escritorio y basadas en la nube.
- Documentación Completa: Disponemos de una documentación extensa y ejemplos, haciendo más fácil para los desarrolladores comenzar y encontrar soluciones a problemas comunes.
Empezando
Para usar IronXL en tus proyectos .NET, necesitas asegurarte de que tu entorno de desarrollo cumpla con los siguientes requisitos:
Prerrequisitos
- .NET Framework: IronXL es compatible con .NET Framework 4.5 y tecnologías .NET superiores.
- .NET Core y .NET Standard: Compatible con .NET Core 2, 3, 5, 6, 7, 8 y 9. Soporta .NET Standard 2.0 y 2.1.
- Sistemas Operativos: Funciona en Windows, macOS y Linux. Compatible con entornos Docker, Azure y AWS.
- No Necesita Microsoft Office: IronXL no requiere que Microsoft Office o Excel Interop estén instalados.
- Editor de código: Cualquier editor de código visual de C# como Visual Studio, etc.
Instalación
Puedes instalar IronXL a través del Administrador de Paquetes NuGet en Visual Studio o usar la Consola del Administrador de Paquetes con el siguiente comando:
dotnet add package IronXL.Excel --version 2024.8.5dotnet add package IronXL.Excel --version 2024.8.5Cómo trabajar con un libro de Excel en C
Para empezar a trabajar en un archivo de Excel, primero, desarrollemos un proyecto de Visual Studio y agreguemos la biblioteca IronXL.
Paso 1: Cree un proyecto de Visual Studio y agregue el paquete NuGet IronXL
Abre Microsoft Visual Studio y selecciona la opción 'Crear un nuevo proyecto' para comenzar a crear el proyecto.

Selecciona la plantilla de proyecto de tu elección, aquí hemos seleccionado la aplicación de consola para simplicidad.

Ahora ingresa el nombre y la ubicación del proyecto.

Selecciona la versión de .NET Framework que prefieras. Hemos seleccionado la última disponible en nuestra máquina.

Una vez que se hace clic en el botón Crear, el proyecto será creado y estará listo para su uso. Abre el Explorador de Soluciones para verificar los archivos del proyecto.

Ahora, instalemos la biblioteca IronXL desde el administrador de paquetes NuGet como se muestra anteriormente.
Paso 2: Crear un archivo Excel sin interoperabilidad
Ahora, creemos un archivo de Excel sin usar la biblioteca Microsoft Interop.
using IronXL;
namespace WorkingWithIronXL
{
public class Program
{
public static void Main()
{
// Create new Excel WorkBook Object
WorkBook workBook = WorkBook.Create();
// Create WorkSheet
WorkSheet workSheet = workBook.CreateWorkSheet("newXlDemo");
// Add data in new worksheet
workSheet["A1"].Value = "IronXL is the best Excel library";
// Save the Excel file as XLSX
workBook.SaveAs("myIronXlDemo.xlsx");
}
}
}using IronXL;
namespace WorkingWithIronXL
{
public class Program
{
public static void Main()
{
// Create new Excel WorkBook Object
WorkBook workBook = WorkBook.Create();
// Create WorkSheet
WorkSheet workSheet = workBook.CreateWorkSheet("newXlDemo");
// Add data in new worksheet
workSheet["A1"].Value = "IronXL is the best Excel library";
// Save the Excel file as XLSX
workBook.SaveAs("myIronXlDemo.xlsx");
}
}
}Imports IronXL
Namespace WorkingWithIronXL
Public Class Program
Public Shared Sub Main()
' Create new Excel WorkBook Object
Dim workBook As WorkBook = WorkBook.Create()
' Create WorkSheet
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("newXlDemo")
' Add data in new worksheet
workSheet("A1").Value = "IronXL is the best Excel library"
' Save the Excel file as XLSX
workBook.SaveAs("myIronXlDemo.xlsx")
End Sub
End Class
End NamespaceExplicación del Código
- Agregamos el espacio de nombres IronXL para comenzar a trabajar con la biblioteca.
- Luego creamos un objeto de Excel para crear un archivo XLSX con
WorkBook.Create(). - El método
CreateWorkSheetse llama luego para crear una hoja de trabajo dentro del libro de trabajo. - Añade valores a una celda utilizando
workSheet["A1"].Value. - Luego guarda el archivo de Excel usando
workBook.SaveAsproporcionando un nombre para el archivo.
Archivo Excel de salida

Paso 3: Agregar estilo al archivo Excel usando IronXL
Ahora veamos cómo añadir estilos a las celdas de Excel.
using IronXL;
namespace WorkingWithIronXL
{
public class Program
{
public static void Main()
{
// Create a new workbook
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
// Create a new worksheet
WorkSheet workSheet = workBook.CreateWorkSheet("StyledSheet");
// Add multiple values to cells
workSheet["A1"].Value = "This Styled Text with Awesome IronXL library";
workSheet["A2"].Value = 999999;
// Apply styles to cells
workSheet["A1"].Style.Font.Bold = true;
workSheet["A1"].Style.Font.Italic = true;
workSheet["A1"].Style.Font.Height = 14;
workSheet["A1"].Style.Font.Color = "#FF0000"; // Red color
workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
workSheet["A2"].Style.BottomBorder.SetColor("#00FF00"); // Green color
// Save the workbook
workBook.SaveAs("myIronXlWriteDemo.xlsx");
}
}
}using IronXL;
namespace WorkingWithIronXL
{
public class Program
{
public static void Main()
{
// Create a new workbook
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
// Create a new worksheet
WorkSheet workSheet = workBook.CreateWorkSheet("StyledSheet");
// Add multiple values to cells
workSheet["A1"].Value = "This Styled Text with Awesome IronXL library";
workSheet["A2"].Value = 999999;
// Apply styles to cells
workSheet["A1"].Style.Font.Bold = true;
workSheet["A1"].Style.Font.Italic = true;
workSheet["A1"].Style.Font.Height = 14;
workSheet["A1"].Style.Font.Color = "#FF0000"; // Red color
workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
workSheet["A2"].Style.BottomBorder.SetColor("#00FF00"); // Green color
// Save the workbook
workBook.SaveAs("myIronXlWriteDemo.xlsx");
}
}
}Imports IronXL
Namespace WorkingWithIronXL
Public Class Program
Public Shared Sub Main()
' Create a new workbook
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
' Create a new worksheet
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("StyledSheet")
' Add multiple values to cells
workSheet("A1").Value = "This Styled Text with Awesome IronXL library"
workSheet("A2").Value = 999999
' Apply styles to cells
workSheet("A1").Style.Font.Bold = True
workSheet("A1").Style.Font.Italic = True
workSheet("A1").Style.Font.Height = 14
workSheet("A1").Style.Font.Color = "#FF0000" ' Red color
workSheet("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double
workSheet("A2").Style.BottomBorder.SetColor("#00FF00") ' Green color
' Save the workbook
workBook.SaveAs("myIronXlWriteDemo.xlsx")
End Sub
End Class
End NamespaceExplicación del Código
- Crea un archivo de Excel utilizando
WorkBook.Create. - Crea una hoja de trabajo utilizando
workBook.CreateWorkSheet. - Añade valores a celdas utilizando
workSheet["A1"].Value. - Añade estilos a cada celda utilizando las propiedades en la celda como
workSheet["A1"].Style.Font.Bold. - Guarda el libro de trabajo utilizando
workBook.SaveAs.
Archivo Excel de Salida

Paso 4: Leer valores de Excel y calcular
Ahora que hemos visto cómo crear archivos de Excel, veamos el siguiente código sobre cómo podemos leer archivos de Excel utilizando IronXL y realizar algunos cálculos en memoria.
using IronXL;
using System;
namespace WorkingWithIronXL
{
internal class IronXlDemo
{
public static void ReadData()
{
// Load the Excel worksheet
WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
// Select the first worksheet
WorkSheet workSheet = workBook.WorkSheets[0];
// Read a specific cell value
int cellValue = workSheet["A2"].IntValue;
Console.WriteLine($"Value in A2: {cellValue}");
// Read a range of cells
foreach (var cell in workSheet["A1:H10"])
{
Console.Write($"{cell.Text}\t");
if(cell.AddressString.Contains("H"))
{
Console.WriteLine();
}
}
// Calculate aggregate values
decimal sum = workSheet["F2:F10"].Sum();
Console.WriteLine($"Sum of F2:F10: {sum}");
}
}
}using IronXL;
using System;
namespace WorkingWithIronXL
{
internal class IronXlDemo
{
public static void ReadData()
{
// Load the Excel worksheet
WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
// Select the first worksheet
WorkSheet workSheet = workBook.WorkSheets[0];
// Read a specific cell value
int cellValue = workSheet["A2"].IntValue;
Console.WriteLine($"Value in A2: {cellValue}");
// Read a range of cells
foreach (var cell in workSheet["A1:H10"])
{
Console.Write($"{cell.Text}\t");
if(cell.AddressString.Contains("H"))
{
Console.WriteLine();
}
}
// Calculate aggregate values
decimal sum = workSheet["F2:F10"].Sum();
Console.WriteLine($"Sum of F2:F10: {sum}");
}
}
}Imports Microsoft.VisualBasic
Imports IronXL
Imports System
Namespace WorkingWithIronXL
Friend Class IronXlDemo
Public Shared Sub ReadData()
' Load the Excel worksheet
Dim workBook As WorkBook = WorkBook.Load("sampleEmployeeData.xlsx")
' Select the first worksheet
Dim workSheet As WorkSheet = workBook.WorkSheets(0)
' Read a specific cell value
Dim cellValue As Integer = workSheet("A2").IntValue
Console.WriteLine($"Value in A2: {cellValue}")
' Read a range of cells
For Each cell In workSheet("A1:H10")
Console.Write($"{cell.Text}" & vbTab)
If cell.AddressString.Contains("H") Then
Console.WriteLine()
End If
Next cell
' Calculate aggregate values
Dim sum As Decimal = workSheet("F2:F10").Sum()
Console.WriteLine($"Sum of F2:F10: {sum}")
End Sub
End Class
End NamespaceExplicación del Código
- Cargamos un archivo Excel de muestra en memoria utilizando
WorkBook.Load. - Accedemos a la primera hoja de trabajo en el libro.
- Leemos el valor de una celda específica y lo mostramos utilizando
Console.WriteLine. - Iteramos a través de un rango de celdas e imprimimos cada valor. Las líneas se imprimen al final de cada columna 'H'.
- Calculamos la suma de valores en el rango F2-F10 y lo imprimimos.
Excel de Entrada

Output

Paso 5: Convertir Excel a HTML para uso web
Ahora que sabemos cómo generar, leer y escribir archivos de Excel, veamos cómo convertir Excel a HTML para uso web.
using IronXL;
using IronXL.Options;
namespace WorkingWithIronXL
{
internal class IronXlDemo
{
public static void ConvertToHtml()
{
WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
var options = new HtmlExportOptions()
{
// Set row/column numbers visible in HTML document
OutputRowNumbers = true,
OutputColumnHeaders = true,
// Set hidden rows/columns visible in HTML document
OutputHiddenRows = true,
OutputHiddenColumns = true,
// Set leading spaces as non-breaking
OutputLeadingSpacesAsNonBreaking = true
};
// Export workbook to the HTML file
workBook.ExportToHtml("workBook.html", options);
}
}
}using IronXL;
using IronXL.Options;
namespace WorkingWithIronXL
{
internal class IronXlDemo
{
public static void ConvertToHtml()
{
WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
var options = new HtmlExportOptions()
{
// Set row/column numbers visible in HTML document
OutputRowNumbers = true,
OutputColumnHeaders = true,
// Set hidden rows/columns visible in HTML document
OutputHiddenRows = true,
OutputHiddenColumns = true,
// Set leading spaces as non-breaking
OutputLeadingSpacesAsNonBreaking = true
};
// Export workbook to the HTML file
workBook.ExportToHtml("workBook.html", options);
}
}
}Imports IronXL
Imports IronXL.Options
Namespace WorkingWithIronXL
Friend Class IronXlDemo
Public Shared Sub ConvertToHtml()
Dim workBook As WorkBook = WorkBook.Load("sampleEmployeeData.xlsx")
Dim options = New HtmlExportOptions() With {
.OutputRowNumbers = True,
.OutputColumnHeaders = True,
.OutputHiddenRows = True,
.OutputHiddenColumns = True,
.OutputLeadingSpacesAsNonBreaking = True
}
' Export workbook to the HTML file
workBook.ExportToHtml("workBook.html", options)
End Sub
End Class
End NamespaceExplicación del Código
- Carga el archivo Excel "sampleEmployeeData.xlsx" utilizando el método
Load. - Establece las opciones para convertir a HTML utilizando
HtmlExportOptions. - Usa el método
ExportToHtmlpara convertir y guardar el libro como un archivo HTML.
Input

Output

Casos de uso del mundo real
IronXL es una biblioteca .NET versátil con una amplia gama de aplicaciones del mundo real, incluyendo:
1. Informes de Negocios:
- Automatizar la generación de informes periódicos, como resúmenes de ventas, estados financieros y métricas de rendimiento.
- Creación de paneles personalizados que extraen datos de diversas fuentes y los presentan en un formato Excel.
2. Análisis de Datos:
- Procesar grandes conjuntos de datos para realizar análisis estadístico, limpieza de datos y transformación de datos.
- Exportar los datos analizados a Excel para un examen adicional y compartir con las partes interesadas.
3. Gestión de Inventario:
- Gestionar inventarios de productos mediante la creación y actualización de hojas Excel con niveles de stock, detalles de proveedores y puntos de nuevo pedido.
- Generar informes de inventarios para rastrear movimientos de stock e identificar tendencias.
4. Gestión de Relaciones con Clientes (CRM):
- Exportar datos de clientes de sistemas CRM a Excel para un análisis detallado e informes.
- Actualizar registros de CRM importando datos modificados desde archivos Excel.
5. Instituciones Educativas:
- Crear y mantener libros de calificaciones de estudiantes, registros de asistencia e informes de progreso.
- Generación de resultados de exámenes y análisis de desempeño detallado para profesores y estudiantes.
6. Servicios Financieros:
- Automatizar la creación de modelos financieros, presupuestos y pronósticos en Excel.
- Consolidar datos financieros de múltiples fuentes para informes financieros completos.
7. Recursos Humanos:
- Gestión de datos de empleados, incluyendo detalles de contacto, información de nómina y evaluaciones de rendimiento.
- Generar informes sobre métricas de RRHH como plantilla, tasas de rotación y demografía de empleados.
8. Gestión de Proyectos:
- Seguimiento de líneas de tiempo de proyectos, hitos y asignación de recursos utilizando hojas Excel.
- Crear diagramas de Gantt y otras herramientas de gestión de proyectos directamente dentro de Excel.
9. E-commerce:
- Exportar detalles de pedidos, información de clientes y datos de ventas desde plataformas de comercio electrónico a Excel.
- Análisis de tendencias de ventas, comportamiento del cliente y rendimiento de productos.
10. Atención Sanitaria:
- Gestión de registros de pacientes, horarios de citas y planes de tratamiento en Excel.
- Analizar datos de salud para identificar patrones y mejorar la atención al paciente.
Licencias de IronXL
IronXL es una biblioteca empresarial que forma parte de la Iron Suite de productos de Iron Software. Es necesario una licencia para funcionar. Los usuarios pueden descargar una licencia de prueba para trabajar usando su ID de correo electrónico desde aquí. Una vez que los datos son ingresados, la licencia se entrega al ID de correo electrónico proporcionado. Esta licencia necesita colocarse al principio del código, antes de usar la biblioteca IronXL como se muestra a continuación.
License.LicenseKey = "your Key Here";License.LicenseKey = "your Key Here";License.LicenseKey = "your Key Here"Conclusión
IronXL es una poderosa biblioteca .NET para crear, leer y editar archivos Excel, ofreciendo una API intuitiva que simplifica el proceso de trabajo con documentos de Excel. Soporta una amplia gama de formatos de Excel, incluyendo XLS, XLSX y CSV, haciéndolo versátil para diversos casos de uso. IronXL permite una manipulación fácil de valores de celda, fórmulas y formatos, y está optimizado para el rendimiento, manejando eficientemente archivos grandes y operaciones complejas. Su gestión eficiente de memoria asegura aplicaciones receptivas, y su compatibilidad multiplataforma lo convierte en una herramienta valiosa para desarrolladores que trabajan en diferentes sistemas operativos.
Preguntas Frecuentes
¿Cómo puedo manipular archivos de Excel en C# sin tener instalado Microsoft Excel?
Puedes usar IronXL, una librería de C# de Iron Software, para leer, escribir y manipular documentos de Excel sin necesidad de Microsoft Excel. Soporta varios formatos como XLS, XLSX y CSV, y puede usarse en aplicaciones como servicios web, de escritorio y consola.
¿Qué pasos se involucran en la configuración de un proyecto de Visual Studio para trabajar con Excel en C#?
Para configurar un proyecto en Visual Studio para trabajar con Excel en C#, instala IronXL a través del Gestor de Paquetes NuGet. Usa el comando: dotnet add package IronXL.Excel --version 2024.8.5 en la consola del Gestor de Paquetes para añadir la librería a tu proyecto.
¿Puedo realizar cálculos en archivos de Excel usando C#?
Sí, utilizando IronXL, puedes realizar cálculos en archivos de Excel. La librería soporta fórmulas de Excel, permitiéndote automatizar cálculos directamente dentro de tu aplicación C#.
¿Cómo convierto un archivo de Excel a HTML usando C#?
IronXL proporciona el método ExportToHtml para convertir archivos de Excel a HTML. Este método ofrece opciones de personalización para asegurar que el resultado en HTML cumpla tus requerimientos.
¿Cuáles son los beneficios de usar IronXL para la manipulación de archivos de Excel en C#?
IronXL ofrece facilidad de uso con una API intuitiva, rendimiento optimizado para manejar archivos de Excel grandes, y versatilidad para diversas aplicaciones. Su compatibilidad multiplataforma y documentación exhaustiva aumentan su utilidad.
¿Puedo aplicar estilos avanzados a las celdas de Excel usando IronXL?
Sí, con IronXL, puedes aplicar estilos avanzados a las celdas de Excel, como personalizar fuente, tamaño, color, bordes y alineación usando las propiedades de estilo en cada celda.
¿Es adecuado IronXL para la manipulación de archivos de Excel en varias plataformas?
Sí, IronXL está diseñado para ser multiplataforma, compatible con Windows, macOS, Linux y entornos como Docker, Azure y AWS, haciéndolo ideal para escenarios de despliegue diversos.
¿Cómo leo valores de celdas de un archivo de Excel usando IronXL en C#?
Con IronXL, puedes leer valores de celdas de un archivo de Excel cargando el archivo usando WorkBook.Load, seleccionando la hoja de trabajo y accediendo a valores de celdas específicas o rangos utilizando su dirección.
¿Qué hace de IronXL una herramienta poderosa para manejar archivos de Excel en C#?
IronXL es poderoso por su soporte para múltiples formatos (XLS, XLSX, CSV), capacidades para fórmulas y estilos, cifrado para seguridad y su capacidad para manejar archivos grandes de manera eficiente entre diferentes sistemas operativos.






