USO DE IRONXL

Cómo generar un archivo Excel en Razor Pages

Actualizado 29 de enero, 2024
Compartir:

Introducción

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: Biblioteca Excel C

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.

Generar archivo Excel en Razor Pages

Para crear hojas de Excel en Razor Pages, abra Visual Studio, cree una aplicación web ASP.NET Core e instale IronXL.

Requisitos previos

Para crear archivos Excel en Razor Pages, existen algunos requisitos previos:

  1. Visual Studio(Última versión)

  2. .NET Framework 6 ó 7

  3. Aplicación web .NET Core en Visual Studio

Instalar la biblioteca IronXL

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

Código para generar un archivo 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
VB   C#

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:

  • Convertir el WorkBook en Stream.(porque es importante convertir el archivo en un flujo antes de descargarlo).
  • Establecer el tipo de datos
  • Especifique el nombre del archivo descargado.

Crear un botón para descargar el archivo Excel

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>
HTML

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.

Ejecutar el proyecto

Ahora ejecute el proyecto y verá la siguiente pantalla en el navegador. Haga clic en el botón verde para descargar el archivo Excel.

Cómo Generar un Archivo Excel en Razor Pages, Figura 1: IronXL Genera Hojas Excel

IronXL Genera Hojas Excel

Verá el archivo descargado en la parte inferior cuando haga clic en el botón "Generar archivo Excel".!".

Cómo generar un archivo Excel en Razor Pages, Figura 2: Archivo descargado de IronXL

Archivo descargado de IronXL

Abrir el archivo Excel generado

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.

Cómo generar un archivo Excel en Razor Pages, Figura 3: Archivo generado por IronXL

**Archivo generado por IronXL

IronXL mejor que la competencia

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.

Conclusión

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.

< ANTERIOR
Cómo exportar datos a Excel en Blazor utilizando IronXL
SIGUIENTE >
Cómo utilizar un analizador CSV en C#

¿Listo para empezar? Versión: 2024.11 acaba de salir

Descarga gratuita de NuGet Descargas totales: 1,111,773 Ver licencias >