Can I Run IronXL with .NET on Azure?
Yes, IronXL can be used on Azure to create, read, and edit Excel spreadsheets (XLSX/XLS/CSV) in C# & VB .NET applications.
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
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 heavy/high-throughput Excel 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;
}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)> req As HttpRequest,
log As ILogger) As HttpResponseMessage
' Log the processing of the request
log.LogInformation("VB.NET 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 FunctionFrequently Asked Questions
Can IronXL be used on Azure to handle Excel files?
Yes, IronXL can be used on Azure to create, read, and edit Excel spreadsheets (XLSX/XLS/CSV) in C# & VB .NET applications. It has been tested on platforms like MVC websites and Azure Functions.
Which Azure hosting level is recommended for IronXL applications?
The Azure B1 hosting level is highly recommended for running IronXL applications, especially if you're dealing with high-throughput systems that need more resources.
Does IronXL work with Docker on Azure?
Yes, IronXL can be used within Docker containers on Azure to give you control over performance. Detailed guidance is available in the IronXL Azure Docker tutorial for both Linux and Windows instances.
What frameworks are compatible with IronXL on Azure?
IronXL works on both .NET Core and .NET Framework on Azure. While .NET Standard applications tend to offer better speed and stability, they also consume more memory.
Do Azure free tier hosting plans support IronXL effectively?
No, Azure free and shared tiers, as well as the consumption plan, are not suitable for heavy or high-throughput Excel processing with IronXL. A more robust plan like Azure B1 or higher is recommended.
Is IronXL compatible with Azure Functions?
Yes, IronXL supports Azure Functions, specifically tested with Azure Functions V3. Though support for V4 hasn't been tested yet, it is on the roadmap.
Where can I find a code example for using IronXL with Azure Functions?
A working Azure Function code example using IronXL is provided in our guide. It illustrates how to process an HTTP request and return an Excel file using Azure Functions v3.3.1.0+.
How can I install IronXL for my project hosted on Azure?
You can install IronXL using NuGet. Simply visit [NuGet packages for IronXL.Excel](https://www.nuget.org/packages/IronXL.Excel) to get started.

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.