Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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 eficazmente con archivos Excel, se recomienda la biblioteca IronXL en lugar de otras bibliotecas como el paquete NPOI del proyecto Java POI.(que también puede utilizarse con archivos PowerPoint) y Office Interop. Proporciona una biblioteca rica en funciones que es sencilla, fácil de usar y no requiere Microsoft Office. Esta biblioteca también debe soportar múltiples versiones de .NET.
En este artículo se muestra cómo utilizar la biblioteca IronXL C# para generar y exportar hojas de cálculo Excel con datos ficticios y encabezados de fila 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, un nuevo ExcelLibro de trabajo y contiene unHoja de trabajo. 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
en Stream
.(porque es importante convertir el archivo en un flujo 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á a la aplicación exportar un archivo Excel a la máquina local. Además, cree 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.
IronXL Genera Hojas Excel
Verá el archivo descargado en la parte inferior cuando haga 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, usted querrá ir para IronXL en lugar de PDI cuando se desea generar grandes / múltiples hojas de cálculo enASP.NET Aplicaciones básicas.
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 funciones para interactuar con archivos Excel, entre las que se incluyenconversión entre formatos populares, insertar funciones matemáticase incluso añadir gráficos yinsertar 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 obtener más informacióntutoriales sobre la creación de archivos Excel.
IronXL es de uso gratuito para fines de desarrollo no comerciales. Aprueba gratuita está disponible para pruebas en producción. Mira elplanes de precios para obtener más información sobre precios y licencias.
9 productos API .NET para sus documentos de oficina