IRONSOFTWAREHOME
USANDO IRONXL

Creating Excel Reports in C# with IronXL

Curtis Chau
Curtis Chau
Updated: 8 de mayo de 2026

Crear informes de Excel en C# es un requisito fundamental en los negocios modernos y en aplicaciones de .NET. Ya sea que estés generando estados financieros, análisis de ventas o paneles de inventario, automatizar el proceso para crear archivos de Excel y hojas de cálculo de Excel ahorra horas de esfuerzo manual mientras reduce errores.

IronXL proporciona una solución potente e intuitiva para que los desarrolladores creen un informe de Excel en C# sin necesidad de Microsoft Office, MS Excel o las dependencias tradicionales de Interop. A diferencia de la Automatización OLE o de los enfoques que dependen de la aplicación Excel, IronXL permite generar libros de trabajo de Excel y datos de Excel directamente en el código con solo una línea donde sea necesario. En esta guía, le enseñaremos cómo crear informes de Excel con IronXL, ¡completos con código de ejemplo fácil de seguir que puede implementar fácilmente en sus propios proyectos!

¿Qué es IronXL y por qué utilizarlo para la generación de archivos Excel?

IronXL es una biblioteca .NET Excel que permite a los desarrolladores crear, leer hojas de cálculo Excel y manipular archivos Excel directamente desde el código fuente de C# o Visual Basic. A diferencia de los enfoques de Microsoft Office Interop que dependen de la aplicación Excel completa o de la ingeniería inversa a través de Open XML SDK, IronXL funciona en Windows, Linux, macOS y entornos en la nube sin necesidad de instalar Excel ni dependencias de terceros. Esto lo hace ideal para informes de Excel en el servidor, flujos de trabajo automatizados y aplicaciones web construidas sobre .NET Core o el .NET Framework.

Para equipos que están pasando de procesos manuales de Excel, bibliotecas más antiguas o flujos de trabajo de herramientas de productividad Open XML que requieren navegar por varios namespaces XML, IronXL ofrece una API intuitiva. Soporta tanto archivos XLS heredados como archivos XLSX modernos, que son esencialmente archivos ZIP que contienen archivos XML y varias carpetas. Ya sea que desees generar un nuevo libro de trabajo de Excel, manipular múltiples hojas de trabajo o cargar datos de Excel desde código externo, IronXL simplifica drásticamente el proceso sin necesidad de entender los formatos subyacentes.

Introducción a IronXL para crear un archivo de Excel

Configurar IronXL para crear informes de Excel lleva solo minutos. Instala la biblioteca a través del Administrador de Paquetes NuGet en Visual Studio:

PM > Install-Package IronXL.Excel

Descarga IronXL hoy mismo y comienza a automatizar la generación de informes de Excel.

Una vez instalado, crear tu primer informe de Excel requiere solo unas pocas líneas de código:

using IronXL;
// Create a new Excel workbook for reports
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
// Add a worksheet for the report
WorkSheet reportSheet = workBook.CreateWorkSheet("Monthly Report");
// Add a title
reportSheet["A1"].Value = "Sales Report - January 2024";
reportSheet["A1"].Style.Font.Bold = true;
// Save the Excel report
workBook.SaveAs("MonthlyReport.xlsx");

Este código crea un nuevo archivo de informe de Excel con un título formateado. La sintaxis de referencia de celda familiar (reportSheet["A1"]) permite a los desarrolladores especificar fácilmente dónde deben aparecer los datos exactamente, como si trabajaran con Excel manualmente.

Resultado

Cómo crear informes de Excel en C# usando IronXL: Imagen 1 - Ejemplo de salida de Excel

Carga de datos de múltiples fuentes

Los informes de Excel del mundo real rara vez usan datos estáticos. IronXL destaca en integrar datos de Excel desde varios formatos, API, nuevas fuentes DataTable o incluso varios archivos XML diferentes. Esto lo hace perfecto para la generación dinámica de informes de Excel en C# en aplicaciones web o del lado del servidor.

Integración de bases de datos

Para los informes de Excel basados en bases de datos, IronXL funciona perfectamente con ADO.NET DataTables:

using System.Data;
using System.Data.SqlClient;
// Fetch data from database
string connectionString = "Server=localhost;Database=Sales;Integrated Security=true;";
DataTable salesData = new DataTable();
using (SqlConnection conn = new SqlConnection(connectionString))
{
    SqlDataAdapter adapter = new SqlDataAdapter(
        "SELECT ProductName, Quantity, Revenue FROM MonthlySales", conn);
    adapter.Fill(salesData);
}
// Create Excel report from DataTable
WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Sales Data");
// Add headers
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Quantity";
sheet["C1"].Value = "Revenue";
// Populate data
int row = 2;
foreach (DataRow dataRow in salesData.Rows)
{
    sheet[$"A{row}"].Value = dataRow["ProductName"];
    sheet[$"B{row}"].Value = dataRow["Quantity"];
    sheet[$"C{row}"].Value = dataRow["Revenue"];
    row++;
}

Este enfoque carga datos de ventas directamente desde SQL Server en tu informe de Excel. La integración de DataTable significa que puedes usar el código de acceso a datos existente sin modificaciones. Para escenarios más complejos, consulta cómo cargar Excel desde bases de datos SQL.

Trabajar con colecciones

Para datos en memoria, datos de Excel procedentes de respuestas de API o una nueva DataTable, las colecciones pueden rellenar hojas de cálculo de Excel fácilmente sin Microsoft Excel ni dependencias de terceros:

var salesRecords = new List<SalesRecord>
{
    new SalesRecord { Product = "Widget A", Units = 150, Price = 29.99m },
    new SalesRecord { Product = "Widget B", Units = 82, Price = 49.99m }
};
// Convert collection to Excel
for (int i = 0; i < salesRecords.Count; i++)
{
    sheet[$"A{i+2}"].Value = salesRecords[i].Product;
    sheet[$"B{i+2}"].Value = salesRecords[i].Units;
    sheet[$"C{i+2}"].Value = salesRecords[i].Price;
}

Este método permite crear un informe de Excel en C# directamente en una aplicación .NET, haciendo que el proceso involucrado para generar múltiples hojas de trabajo o archivos XLSX sea mucho más simple que la Automatización OLE manual o la ingeniería inversa de archivos XML.

Resultado

Cómo crear informes de Excel en C# usando IronXL: Imagen 2 - Hoja de trabajo de muestra a partir de la salida de datos

Formato de informes profesionales de Excel

Los datos sin procesar por sí solos no hacen un informe profesional. IronXL proporciona opciones de formateo de celdas completas para crear archivos de Excel bien terminados, listos para los negocios. El siguiente código muestra lo fácil que es esto con IronXL:

using IronXL;
using IronXL.Styles;

class Program
{
    static void Main(string[] args)
    {
        // Create a new workbook
        var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        // Add a new worksheet
        var sheet = workbook.CreateWorkSheet("MySheet");
        // Add header values
        sheet["A1"].Value = "Product";
        sheet["B1"].Value = "Quantity";
        sheet["C1"].Value = "Price";
        // Add sample data rows
        sheet["A2"].Value = "Laptop";
        sheet["B2"].Value = 5;
        sheet["C2"].Value = 1299.99;
        sheet["A3"].Value = "Headphones";
        sheet["B3"].Value = 15;
        sheet["C3"].Value = 199.50;
        sheet["A4"].Value = "Keyboard";
        sheet["B4"].Value = 10;
        sheet["C4"].Value = 89.99;
        sheet["A5"].Value = "Monitor";
        sheet["B5"].Value = 7;
        sheet["C5"].Value = 249.00;
        // Header formatting
        var headerRange = sheet["A1:C1"];
        headerRange.Style.Font.Bold = true;
        headerRange.Style.SetBackgroundColor("#4472C4");
        headerRange.Style.Font.Color = "#FFFFFF";
        headerRange.Style.BottomBorder.Type = BorderType.Thick;
        // Number formatting for currency
        sheet["C:C"].FormatString = "$#,##0.00";
        // Alternating row colors for readability
        for (int row = 2; row <= 10; row++)
        {
            if (row % 2 == 0)
            {
                sheet[$"A{row}:C{row}"].Style.SetBackgroundColor("#F2F2F2");
            }
        }
        // Column width adjustment
        sheet.Columns[0].Width = 15 * 256; // Width in 1/256th of character width
        sheet.Columns[2].Width = 12 * 256;
        // Add borders around data
        var dataRange = sheet["A1:C10"];
        dataRange.Style.TopBorder.Type = BorderType.Thin;
        dataRange.Style.RightBorder.Type = BorderType.Thin;
        dataRange.Style.BottomBorder.Type = BorderType.Thin;
        dataRange.Style.LeftBorder.Type = BorderType.Thin;
        // Save the workbook to a file
        workbook.SaveAs("MyWorkbook.xlsx");
    }
}

Estas opciones de formateo transforman los datos básicos en informes profesionales. La API de estilo cubre todo desde fuentes y colores hasta bordes y alineación, dando control total sobre la apariencia del informe de Excel. Para necesidades de formateo avanzadas, explora la formateo condicional para resaltar datos importantes automáticamente.

Cómo crear informes de Excel en C# usando IronXL: Imagen 3 - Salida de Excel formateada

Uso de fórmulas para cálculos de informes dinámicos de Excel

El poder de Excel radica en sus fórmulas, y IronXL soporta completamente la creación de fórmulas de Excel:

// Add formula for row totals
sheet["D1"].Value = "Total";
sheet["D2"].Formula = "=B2*C2";
// Copy formula down the column
for (int row = 3; row <= 10; row++)
{
    sheet[$"D{row}"].Formula = $"=B{row}*C{row}";
}
// Add summary formulas
sheet["A12"].Value = "Summary";
sheet["B12"].Formula = "=SUM(B2:B10)";
sheet["C12"].Formula = "=AVERAGE(C2:C10)";
sheet["D12"].Formula = "=SUM(D2:D10)";

El soporte de fórmulas incluye todas las funciones estándar de Excel como SUM, AVERAGE, IF, VLOOKUP y más. IronXL maneja automáticamente las dependencias de las fórmulas y el orden de cálculo, haciendo que la generación de informes de Excel con cálculos complejos sea sencilla. Aprende más sobre funciones matemáticas en IronXL.

Cómo crear informes de Excel en C# usando IronXL: Imagen 4 - Ejemplo de salida con fórmulas

Informes basados en plantillas

Para informes de Excel recurrentes o libros de trabajo estandarizados, IronXL soporta la generación basada en plantillas, permitiendo a los desarrolladores crear un archivo de Excel desde una plantilla sin tener que lidiar con Open XML SDK, archivos rels o varias carpetas:

// Load existing template
Workbook templateBook = Workbook.Load("ReportTemplate.xlsx");
Worksheet templateSheet = templateBook.DefaultWorksheet;
// Find and replace template markers
foreach (var cell in templateSheet["A1:Z100"])
{
    if (cell.Text.Contains("{{CompanyName}}"))
        cell.Value = cell.Text.Replace("{{CompanyName}}", "Acme Corp");
    if (cell.Text.Contains("{{ReportDate}}"))
        cell.Value = cell.Text.Replace("{{ReportDate}}", DateTime.Now.ToString("MMMM yyyy"));
}
// Save as new report
templateBook.SaveAs($"Report_{DateTime.Now:yyyyMMdd}.xlsx");

Este enfoque mantiene un formato consistente mientras actualiza contenido dinámico, perfecto para informes mensuales o documentos estandarizados.

Cómo crear informes de Excel en C# usando IronXL: Imagen 5 - La plantilla de informe vs. nuestro archivo de Excel creado usando la plantilla

Mejores prácticas y solución de problemas

Al implementar la generación de informes de Excel, ten en cuenta estos consejos:

  • Uso de memoria con archivos grandes: procese los datos en fragmentos en lugar de cargar conjuntos de datos completos ( recomendaciones de Microsoft para archivos grandes de Excel )
  • Problemas de formato de fecha: utilice DateTime.ToOADate() para fechas compatibles con Excel ( explicación del sistema de fechas de Excel )
  • Errores de archivo bloqueado: Siempre deseche correctamente los objetos de Excel utilizando declaraciones using o nuevos enfoques MemoryStream.
  • Faltan estilos: Algunas propiedades de estilo requieren establecer primero el color de fondo

Conclusión

IronXL transforma la generación de informes de Excel de ser un proceso tedioso y manual a un flujo de trabajo automatizado y confiable. Con su API intuitiva, soporte multiplataforma y conjunto de características completas, los desarrolladores pueden crear informes de Excel profesionales en minutos en lugar de horas. La combinación de integración fácil de datos, poderosas opciones de formateo y soporte de fórmulas hace de IronXL una herramienta esencial para cualquier desarrollador de C# que trabaje con informes de Excel. Para los desarrolladores interesados, IronXL ofrece una prueba gratuita y otras opciones de licencia para empresas y particulares.

Primer Paso:
arrow pointer
Curtis Chau
Escritor Técnico

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.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta