Can I Run IronXL with .NET on Azure?

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

Yes, IronXL can be used on Azure to generate QR & Barcodes in C# & VB .NET Applications, and also read Barcodes & QR Codes from scanned images.

IronXL has been thoroughly tested on multiple Azure platforms including MVC websites, Azure Functions, and many more.


Step 1

1. Install IronXL to Get Started

First install with NuGet: https://www.nuget.org/packages/IronXL.Excel

Install-Package IronXL.Excel

How to Tutorial

2. Performance and Azure Tiers

We recommend that Azure B1 hosting levels are very suitable for our end users' Library needs. If they are creating a high throughput system, this may need to be upgraded.

3. Framework Choice

We have found that IronXL for Core and for Framework both work on Azure. .NET Standard applications seem to have a small performance advantage on speed and stability, but use more memory in process.

Azure free tier hosting is slow

Azure free and shared tiers, and the consumption plan, are not suitable for QR processing. We recommend Azure B1 hosting/Premium plan, which is what we use ourselves.

4. Docker on Azure

One way to gain the ability to control performance on Azure is to use IronXL applications and Functions from within Docker Containers.

We have a comprehensive IronXL Azure Docker tutorial for Linux and Windows instances and it is recommended reading.

5. Official Azure Function Support

IronXL supports Azure Function (Azure Functions V3). It hasn't been tested with V4 till now, but it is in our queue.

Working Azure Function Code Example

Tested on Azure Functions v3.3.1.0+. Here is a sample code:

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

Questions Fréquemment Posées

Comment puis-je exécuter des applications .NET sur Azure ?

Vous pouvez utiliser IronXL pour exécuter des applications .NET sur Azure. Il permet de générer des QR et des codes-barres dans les applications C# et VB .NET et de les lire à partir d'images numérisées. Il a été testé sur diverses plateformes Azure, y compris les sites Web MVC et les fonctions Azure.

Quels sont les niveaux d'hébergement Azure recommandés pour des performances optimales ?

Pour des performances optimales avec IronXL, nous recommandons les niveaux d'hébergement Azure B1. Si vous concevez un système à haut débit, envisagez de passer à un niveau supérieur.

Quel framework .NET fonctionne le mieux sur Azure ?

IronXL fonctionne à la fois sur .NET Core et .NET Framework sur Azure. Cependant, les applications .NET Standard offrent un léger avantage de performance en termes de vitesse et de stabilité, bien qu'elles nécessitent une mémoire accrue.

Le niveau gratuit d'Azure est-il suffisant pour le traitement des QR ?

Les niveaux gratuits et partagés d'Azure, ainsi que le plan de consommation, ne sont pas recommandés pour le traitement des QR avec IronXL. Nous vous suggérons plutôt d'utiliser l'hébergement Azure B1 ou un plan Premium pour de meilleures performances.

Peut-on utiliser Docker pour gérer les applications IronXL sur Azure ?

Oui, vous pouvez utiliser Docker pour gérer les applications et fonctions IronXL sur Azure. Cette configuration permet un meilleur contrôle des performances. Un tutoriel Azure Docker détaillé est disponible pour les instances Linux et Windows.

IronXL prend-il en charge les fonctions Azure ?

Oui, IronXL prend en charge les fonctions Azure V3. Les tests pour les fonctions Azure V4 sont en cours, avec des plans pour étendre le support à l'avenir.

Comment installer IronXL pour l'utiliser sur Azure ?

Vous pouvez installer IronXL via NuGet en utilisant la commande : nuget install IronXL.Excel.

Y a-t-il un exemple d'utilisation d'IronXL avec les fonctions Azure ?

Oui, l'article fournit un extrait de code de fonction Azure qui traite une requête HTTP et renvoie un fichier Excel. Cet exemple est testé sur Azure Functions v3.3.1.0+.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 1,686,155 | Version : 2025.11 vient de sortir