¿Puedo ejecutar IronXL con .NET en Azure?

This article was translated from English: Does it need improvement?
Translated
View the article in English

Sí, IronXL se puede usar en Azure para generar QR y códigos de barras en aplicaciones C# y VB .NET, y también leer códigos de barras y códigos QR de imágenes escaneadas.

IronXL ha sido probado a fondo en múltiples plataformas de Azure, incluyendo sitios web MVC, Azure Functions, y muchos más.


Paso 1

1. Instale IronXL para comenzar

Primero instale con NuGet: https://www.nuget.org/packages/IronXL.Excel

Install-Package IronXL.Excel

Tutorial de cómo hacerlo

2. Rendimiento y niveles de Azure

Recomendamos que los niveles de alojamiento de Azure B1 son muy adecuados para las necesidades de la biblioteca de nuestros usuarios finales. Si están creando un sistema de alto rendimiento, esto puede necesitar ser actualizado.

3. Elección del marco

Hemos encontrado que IronXL para Core y para Framework ambos funcionan en Azure. Las aplicaciones en .NET Standard parecen tener una pequeña ventaja de rendimiento en velocidad y estabilidad, pero usan más memoria en el proceso.

El alojamiento de nivel gratuito de Azure es lento

Los niveles gratuitos y compartidos de Azure, y el plan de consumo, no son adecuados para el procesamiento de QR. Recomendamos el plan de alojamiento B1 de Azure/plan Premium, que es el que usamos nosotros mismos.

4. Docker en Azure

Una manera de obtener la capacidad de controlar el rendimiento en Azure es usar aplicaciones y funciones de IronXL desde dentro de contenedores Docker.

Tenemos un tutorial completo de Docker para IronXL en Azure para instancias de Linux y Windows, y se recomienda su lectura.

5. Soporte oficial de funciones de Azure

IronXL es compatible con Azure Function (Azure Functions V3). No ha sido probado con V4 hasta ahora, pero está en nuestra cola.

Ejemplo de código de función de Azure en funcionamiento

Probado en Azure Functions v3.3.1.0+. Aquí hay un código de muestra:

using System.Net;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using IronXL;
using System.Net.Http.Headers;

// This is an Azure Function that processes an HTTP request and returns an Excel file
[FunctionName("excel")]
public static HttpResponseMessage Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log)
{
    // Log the processing of the request
    log.LogInformation("C# HTTP trigger function processed a request.");

    // Set the IronXL license key
    IronXL.License.LicenseKey = "Key";

    // Load an existing workbook
    var workBook = WorkBook.Load("test-wb.xlsx");

    // Create a response with the workbook content as an attachment
    var result = new HttpResponseMessage(HttpStatusCode.OK);
    result.Content = new ByteArrayContent(workBook.ToByteArray());
    result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
    { 
        FileName = $"{DateTime.Now:yyyyMMddmm}.xlsx" 
    };
    result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

    // Return the response
    return result;
}
using System.Net;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using IronXL;
using System.Net.Http.Headers;

// This is an Azure Function that processes an HTTP request and returns an Excel file
[FunctionName("excel")]
public static HttpResponseMessage Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log)
{
    // Log the processing of the request
    log.LogInformation("C# HTTP trigger function processed a request.");

    // Set the IronXL license key
    IronXL.License.LicenseKey = "Key";

    // Load an existing workbook
    var workBook = WorkBook.Load("test-wb.xlsx");

    // Create a response with the workbook content as an attachment
    var result = new HttpResponseMessage(HttpStatusCode.OK);
    result.Content = new ByteArrayContent(workBook.ToByteArray());
    result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
    { 
        FileName = $"{DateTime.Now:yyyyMMddmm}.xlsx" 
    };
    result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

    // Return the response
    return result;
}
Imports System.Net
Imports Microsoft.Azure.WebJobs
Imports Microsoft.Azure.WebJobs.Extensions.Http
Imports Microsoft.AspNetCore.Http
Imports Microsoft.Extensions.Logging
Imports IronXL
Imports System.Net.Http.Headers

' This is an Azure Function that processes an HTTP request and returns an Excel file
<FunctionName("excel")>
Public Shared Function Run(<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route := Nothing)> ByVal req As HttpRequest, ByVal log As ILogger) As HttpResponseMessage
	' Log the processing of the request
	log.LogInformation("C# HTTP trigger function processed a request.")

	' Set the IronXL license key
	IronXL.License.LicenseKey = "Key"

	' Load an existing workbook
	Dim workBook = WorkBook.Load("test-wb.xlsx")

	' Create a response with the workbook content as an attachment
	Dim result = New HttpResponseMessage(HttpStatusCode.OK)
	result.Content = New ByteArrayContent(workBook.ToByteArray())
	result.Content.Headers.ContentDisposition = New ContentDispositionHeaderValue("attachment") With {.FileName = $"{DateTime.Now:yyyyMMddmm}.xlsx"}
	result.Content.Headers.ContentType = New MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")

	' Return the response
	Return result
End Function
$vbLabelText   $csharpLabel

Preguntas Frecuentes

¿Cómo puedo ejecutar aplicaciones .NET en Azure?

Puedes usar IronXL para ejecutar aplicaciones .NET en Azure. Permite generar códigos QR y de barras en aplicaciones C# y VB .NET y leerlos desde imágenes escaneadas. Ha sido probado en varias plataformas de Azure, incluyendo sitios web MVC y Azure Functions.

¿Cuáles son los niveles de alojamiento de Azure recomendados para un rendimiento óptimo?

Para un rendimiento óptimo con IronXL, recomendamos niveles de alojamiento Azure B1. Si estás diseñando un sistema de alto rendimiento, considera actualizar a un nivel superior.

¿Cuál es el mejor framework .NET para Azure?

IronXL funciona en .NET Core y .NET Framework en Azure. Sin embargo, las aplicaciones .NET Standard ofrecen una ligera ventaja de rendimiento en velocidad y estabilidad, aunque con mayor uso de memoria.

¿Es suficiente el nivel gratuito de Azure para procesar códigos QR?

Los niveles gratuitos y compartidos de Azure, junto con el plan de consumo, no son recomendables para el procesamiento de QR con IronXL. En su lugar, sugerimos usar el alojamiento Azure B1 o un plan Premium para un mejor rendimiento.

¿Se puede usar Docker para gestionar aplicaciones IronXL en Azure?

Sí, puedes usar Docker para gestionar aplicaciones y funciones de IronXL en Azure. Esta configuración permite un mejor control sobre el rendimiento. Un tutorial detallado de Azure Docker está disponible para instancias de Linux y Windows.

¿IronXL soporta Azure Functions?

Sí, IronXL soporta Azure Functions V3. Las pruebas para Azure Functions V4 están en marcha, con planes de ampliar el soporte en el futuro.

¿Cómo instalo IronXL para usar en Azure?

Puedes instalar IronXL a través de NuGet usando el comando: nuget install IronXL.Excel.

¿Hay un ejemplo de uso de IronXL con Azure Functions?

Sí, el artículo proporciona un código de ejemplo de Azure Function que procesa una solicitud HTTP y devuelve un archivo de Excel. Este ejemplo está probado en Azure Functions v3.3.1.0+.

Curtis Chau
Escritor Técnico

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

Leer más
¿Listo para empezar?
Nuget Descargas 1,738,553 | Version: 2025.11 recién lanzado