
Cómo generar un archivo de Excel en Razor Pages
Las Razor Pages ofrecen un enfoque moderno para construir páginas web. En Razor Pages, el código fuente que renderiza la página web está escrito en C# en lugar de ser generado por una página del lado del servidor.
Para trabajar eficientemente con archivos de Excel, se recomienda la biblioteca IronXL sobre otras como el paquete POI Java project NPOI (notablemente utilizado con archivos de PowerPoint) y Office Interop. IronXL es una biblioteca rica en funciones, fácil de usar, que no requiere Microsoft Office y admite múltiples versiones de .NET.
Este artículo demuestra el uso de la biblioteca IronXL en C# para generar y exportar hojas de cálculo de Excel con datos ficticios y encabezados de filas en Razor Pages.
Cómo generar archivos de Excel en Razor Pages
- Instalar la biblioteca C# para generar archivos Excel en Razor
- Acceder o crear un nuevo archivo de Excel en un método
- Agregar datos y estilo al objeto WorkBook en Razor
- Utilice el método Archivo para descargar automáticamente el archivo Excel cuando se presiona el botón
- Inspeccionar el archivo Excel generado
IronXL: Biblioteca de Excel en C#
IronXL es una biblioteca de Excel en C# que ofrece métodos y funciones para operar con grandes conjuntos de datos utilizando procesamiento en paralelo para aumentar la potencia informática. Es fácil de usar ya que no requiere entender el funcionamiento interno y admite archivos tanto XLS como XLSX.
IronXL es ideal para importar, exportar, crear fórmulas de Excel y documentos de oficina sin necesidad de tener instalado Microsoft Office.
Aprende a importar y exportar archivos de Excel en Razor Pages usando IronXL.
Generar un archivo de Excel en Razor Pages
Para crear hojas de Excel en Razor Pages, comienza abriendo Visual Studio, creando una aplicación web de ASP.NET Core e instalando IronXL.
Prerrequisitos
Configurar la creación de archivos de Excel en Razor Pages requiere:
- Visual Studio (última versión)
- .NET Framework 6 o 7
- Aplicación web de .NET Core en Visual Studio
Instalar la biblioteca IronXL
Instalar IronXL usando la consola del Administrador de paquetes NuGet. Introduce este comando para instalar la biblioteca en una aplicación web de .NET Core:
Código para generar un archivo Excel
Así es como se escribe el código. Abre "Index.cs" en la carpeta Pages y agrega el siguiente método:
public FileResult OnPostExport()
{
// Create a new WorkBook with XLSX format
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
// Create a new WorkSheet named "data"
WorkSheet workSheet = workBook.CreateWorkSheet("data");
// Add headers to the new worksheet
workSheet["A1"].Value = "Product EN";
workSheet["B1"].Value = "SKU";
workSheet["C1"].Value = "Customer";
// Make header text bold
workSheet["A1:C1"].Style.Font.Bold = true;
// Add dummy data to the worksheet
workSheet["A2"].Value = "Iron Rods";
workSheet["A3"].Value = "Mobile Phones";
workSheet["A4"].Value = "Chargers";
workSheet["B2"].Value = "105";
workSheet["B3"].Value = "285";
workSheet["B4"].Value = "301";
workSheet["C2"].Value = "Adam";
workSheet["C3"].Value = "Ellen";
workSheet["C4"].Value = "Tom";
// Convert the WorkBook to a byte array Stream for download
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}Public Function OnPostExport() As FileResult
' Create a new WorkBook with XLSX format
Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)
' Create a new WorkSheet named "data"
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")
' Add headers to the new worksheet
workSheet("A1").Value = "Product EN"
workSheet("B1").Value = "SKU"
workSheet("C1").Value = "Customer"
' Make header text bold
workSheet("A1:C1").Style.Font.Bold = True
' Add dummy data to the worksheet
workSheet("A2").Value = "Iron Rods"
workSheet("A3").Value = "Mobile Phones"
workSheet("A4").Value = "Chargers"
workSheet("B2").Value = "105"
workSheet("B3").Value = "285"
workSheet("B4").Value = "301"
workSheet("C2").Value = "Adam"
workSheet("C3").Value = "Ellen"
workSheet("C4").Value = "Tom"
' Convert the WorkBook to a byte array Stream for download
Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx")
End FunctionIn this code, a new Excel WorkBook is created and contains one WorkSheet. La hoja se llena con datos ficticios y el archivo generado se responde al servidor con:
- El
WorkBookse convierte en unStreampara descargar como archivo. - Se establece el tipo MIME.
- Se especifica un nombre para la descarga del archivo.
Crea un botón para descargar el archivo Excel
Reemplaza el código existente en "Index.cshtml" con lo siguiente:
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">IronXL Generate Excel File</h1>
<p class="m-5">IronXL is an Excel Library for C# that allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
<form method="post" asp-page-handler="Export">
<button class="btn btn-success p-3">Generate Excel File!</button>
</form>
</div>
Este HTML crea un formulario con asp-page-handler configurado en "Exportar", permitiendo a la aplicación exportar el archivo Excel a la máquina local cuando el usuario hace clic en el botón "¡Generar archivo Excel!", activando una descarga en el navegador.
Ejecutar el proyecto
Ejecuta el proyecto y verás una pantalla en el navegador. Haz clic en el botón verde para descargar el archivo de Excel.
IronXL generar hojas de Excel
Después de hacer clic en "Generate Excel File!", el archivo se descargará.
IronXL archivo descargado
Abra el archivo Excel generado
El contenido del archivo de Excel generado coincide con la salida del código con un formato perfecto. La instantánea del archivo de Excel generado se muestra a continuación.
IronXL archivo generado
IronXL mejor que la competencia
IronXL es una herramienta superior para trabajar con formatos XLS y XLSX sin limitaciones como NPOI, que es más lento debido a estar basado en Java, mientras que IronXL es C#. En aplicaciones de ASP.NET Core que generan hojas de cálculo grandes/múltiples, opta por IronXL sobre POI.
IronXL permite crear y editar archivos de Excel sin Microsoft Office. A diferencia de Microsoft Interop, IronXL no necesita llamar al ActiveX de Microsoft Excel para operaciones o exportaciones de Excel. También permite exportar archivos CSV al formato de Excel.
IronXL también proporciona amplias características para interactuar con archivos de Excel, incluyendo convertir entre formatos populares, insertar funciones matemáticas, agregar gráficos y insertar imágenes.
Conclusión
Este artículo muestra cómo usar IronXL para generar un archivo de Excel en Razor Pages sin necesitar Microsoft Excel ActiveX y facilitar la descarga de archivos.
Explora más tutoriales sobre cómo crear archivos de Excel.
IronXL es gratuito para el desarrollo no comercial. Hay una prueba gratuita disponible para pruebas de producción. Consulta los planes de precios para obtener más detalles sobre precios y licencias.

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



