¿Puedo ejecutar IronXL con .NET en Azure?
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 FunctionPreguntas 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+.






