Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
Razor Pages es una nueva forma de crear páginas web. Con Razor Pages, el código fuente que renderiza la página web se construye en C# en lugar de ser generado por una página del lado del servidor.
Para trabajar con archivos Excel de manera eficiente, se recomienda la biblioteca IronXL sobre otras bibliotecas como el paquete NPOI del proyecto POI Java (que también se puede usar con archivos de PowerPoint) y Office Interop. Proporciona una biblioteca rica en funciones que es simple, fácil de usar y no requiere Microsoft Office. Esta biblioteca también debería soportar múltiples versiones de .NET.
Este artículo demostrará cómo usar la biblioteca IronXL C# para generar y exportar hojas de cálculo de Excel con datos ficticios y encabezados de filas en Razor Pages (modelo de página).
IronXL es una biblioteca de C# Excel que proporciona métodos y funciones para operar con grandes conjuntos de datos. Utiliza el procesamiento paralelo para obtener más potencia de cálculo. Es fácil de usar para los programadores porque no requiere ningún conocimiento sobre cómo funciona el proceso entre bastidores. Admite archivos XLS y XLSX.
IronXL también permite importar y exportar archivos de Excel, así como crear fórmulas de Excel y documentos ofimáticos. Es la solución perfecta para quienes no quieren instalar Microsoft Office en sus máquinas.
Veamos cómo importar y exportar archivos Excel en Razor Pages con IronXL.
Para crear hojas de Excel en Razor Pages, abra Visual Studio, cree una aplicación web ASP.NET Core e instale IronXL.
Para crear archivos Excel en Razor Pages, existen algunos requisitos previos:
Visual Studio (Última Versión)
.NET Framework 6 ó 7
Puede instalarlo utilizando la consola del gestor de paquetes NuGet. Abra la consola y escriba el siguiente comando para instalar la biblioteca IronXL en una aplicación web .NET Core.
Install-Package IronXL.Excel
Ahora, es el momento de escribir código. Abra el archivo "Index.cs" de la carpeta Pages y añada el siguiente método:
public FileResult OnPostExport()
{
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("data");
//Add data and styles to the new worksheet
workSheet ["A1"].Value = "Product EN";
workSheet ["B1"].Value = "SKU";
workSheet ["C1"].Value = "Customer";
workSheet ["A1:C1"].Style.Font.Bold = true;
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";
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
public FileResult OnPostExport()
{
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("data");
//Add data and styles to the new worksheet
workSheet ["A1"].Value = "Product EN";
workSheet ["B1"].Value = "SKU";
workSheet ["C1"].Value = "Customer";
workSheet ["A1:C1"].Style.Font.Bold = true;
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";
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
Public Function OnPostExport() As FileResult
Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")
'Add data and styles to the new worksheet
workSheet ("A1").Value = "Product EN"
workSheet ("B1").Value = "SKU"
workSheet ("C1").Value = "Customer"
workSheet ("A1:C1").Style.Font.Bold = True
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"
Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx")
End Function
En el código anterior, se crea un nuevo WorkBook
de Excel, y contiene un WorkSheet
. A continuación, la hoja se rellena con datos ficticios y devuelve el archivo generado en una respuesta del servidor con los siguientes parámetros:
WorkBook
a Stream
(porque es importante convertir el archivo en un stream antes de descargarlo).Sustituya el código existente en "Index.cshtml" por el código 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# and 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>
@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# and 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>
En el código HTML anterior, cree una etiqueta de formulario con la propiedad "asp-page-handler" establecida en "Export". Esto permitirá que la aplicación exporte un archivo Excel a la máquina local. Además, crea un botón con el texto "¡Generar archivo Excel!". Cuando el usuario haga clic en este botón, el navegador descargará el archivo Excel generado.
Ahora ejecute el proyecto y verá la siguiente pantalla en el navegador. Haga clic en el botón verde para descargar el archivo Excel.
Generar hojas de Excel con IronXL
Verás el archivo descargado en la parte inferior cuando hagas clic en el botón "Generar archivo Excel!".
Archivo Descargado de IronXL
El contenido del archivo Excel generado es coherente con lo escrito en el código, con un formato perfecto. A continuación puede ver la instantánea del archivo Excel generado.
Archivo Generado por IronXL
La librería IronXL es una herramienta más potente para trabajar con Excel que soporta tanto XLS como XLSX y no tiene las limitaciones de NPOI. NPOI funciona mucho más lento que IronXL, ya que está escrito en Java en lugar de en C#. Por lo tanto, querrá optar por IronXL en lugar de POI cuando desee generar hojas de cálculo grandes/múltiples en aplicaciones de ASP.NET Core.
IronXL es una gran biblioteca para crear y editar archivos Excel sin utilizar Microsoft Office. A diferencia de Microsoft Interop, IronXL no necesita llamar al ActiveX de Microsoft Excel en segundo plano para realizar operaciones de Excel y exportar a Excel. IronXL puede trabajar sin la suite Microsoft Office. IronXL también puede exportar archivos CSV al formato Excel.
Además, IronXL también ofrece una amplia gama de características para interactuar con archivos Excel, incluyendo convertir entre formatos populares, insertar funciones matemáticas, e incluso añadir gráficos y insertar imágenes.
Este artículo presenta cómo utilizar IronXL para generar un archivo Excel en Razor Pages, de una manera que no requiere llamar a Microsoft Excel ActiveX y descargar el archivo.
Visite el siguiente enlace para más tutoriales sobre cómo crear archivos Excel.
IronXL es de uso gratuito para fines de desarrollo no comerciales. Hay disponible una prueba gratuita para realizar pruebas en producción. Consulte los planes de precios para obtener más detalles sobre precios y licencias.