USO DE IRONXL

Cómo generar un archivo Excel en Razor Pages

Chaknith Bin
Chaknith Bin
14 de noviembre, 2022
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 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: C# Biblioteca Excel

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
$vbLabelText   $csharpLabel

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:

  • Convierte el WorkBook a Stream (porque es importante convertir el archivo en un stream 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á 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.

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 Generar hojas de 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!".

Cómo generar un archivo de 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, 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.

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

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.
< ANTERIOR
Cómo exportar datos a Excel en Blazor utilizando IronXL
SIGUIENTE >
Cómo utilizar un analizador CSV en C#