Czy mogę uruchomić IronXL z .NET na Azure?
Tak, IronXL może być używany na platformie Azure do odczytywania i zapisywania plików Excel w aplikacjach C# i VB .NET.
IronXL został dokładnie przetestowany na wielu platformach Azure, w tym na stronach internetowych MVC, funkcjach Azure i wielu innych.
Krok 1
1. Zainstaluj IronXL, aby rozpocząć
Najpierw zainstaluj z NuGet: https://www.nuget.org/packages/IronXl.Excel
Install-Package IronXl.Excel
Poradnik "Jak to zrobić"
2. Wydajność i poziomy Azure
Zalecamy poziomy hostingu Azure B1, które są bardzo odpowiednie do potrzeb biblioteki naszych użytkowników końcowych. W przypadku tworzenia systemu o wysokiej przepustowości może być konieczna jego aktualizacja.
3. Wybór frameworka
Stwierdziliśmy, że IronXL for Core i for Framework działają obu na Azure. Aplikacje zgodne z .NET Standard wydają się mieć niewielką przewagę w zakresie szybkości i stabilności, ale zużywają więcej pamięci w procesie.
Bezpłatny hosting Azure jest wolny
Bezpłatne i współdzielone poziomy Azure oraz plan konsumpcyjny nie są odpowiednie do przetwarzania plików Excel. Zalecamy hosting Azure B1/plan Premium, którego sami używamy.
4. Docker na platformie Azure
Jednym ze sposobów na uzyskanie możliwości kontrolowania wydajności na Azure jest użycie aplikacji i funkcji IronXL wewnątrz kontenerów Docker.
Posiadamy kompleksowy tutorial Docker Azure IronXL dla instancji Linux i Windows i jest to zalecana lektura.
5. Oficjalna obsługa funkcji Azure
IronXL obsługuje funkcję Azure (Azure Functions V3). Nie został przetestowany z V4 do tej pory, ale jest w naszej kolejce.
Przykładowy kod funkcji Azure
Przetestowano na Azure Functions w wersji 3.3.1.0+. Oto przykładowy kod:
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)> req As HttpRequest,
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
Często Zadawane Pytania
Jak mogę uruchomić aplikacje .NET na Azure?
Możesz używać IronXL do uruchamiania aplikacji .NET na Azure. Umożliwia generowanie kodów QR i Barcodes w aplikacjach C# i VB .NET oraz ich odczytywanie ze skanowanych obrazów. Został przetestowany na różnych platformach Azure, w tym witrynach MVC i funkcjach Azure.
Jakie poziomy hostingu Azure są zalecane dla optymalnej wydajności?
Dla optymalnej wydajności IronXL rekomendujemy poziomy hostingu Azure B1. Jeśli projektujesz system o dużej przepustowości, rozważ upgrade do wyższego tieru.
Który framework .NET najlepiej działa na Azure?
IronXL działa na obu .NET Core i .NET Framework na Azure. Jednak aplikacje .NET Standard zapewniają nieznaczną przewagę w prędkości i stabilności, choć zużywają więcej pamięci.
Czy darmowy tier Azure jest wystarczający do przetwarzania kodów QR?
Darmowe i współdzielone tiery Azure oraz plan konsumpcyjny nie są zalecane do przetwarzania kodów QR za pomocą IronXL. Zamiast tego, sugerujemy użycie hostingu Azure B1 lub planu Premium dla lepszej wydajności.
Czy można używać Dockera do zarządzania aplikacjami IronXL na Azure?
Tak, możesz używać Dockera do zarządzania aplikacjami i funkcjami IronXL na Azure. Ta konfiguracja pozwala na lepszą kontrolę wydajności. Dostępny jest szczegółowy tutorial Dockera na Azure dla instancji Linux i Windows.
Czy IronXL wspiera Azure Functions?
Tak, IronXL wspiera Azure Functions V3. Trwają testy dla Azure Functions V4, z planami na rozszerzenie wsparcia w przyszłości.
Jak zainstalować IronXL do użytku na Azure?
Możesz zainstalować IronXL za pośrednictwem NuGet używając komendy: nuget install IronXl.Excel.
Czy istnieje przykład użycia IronXL z Azure Functions?
Tak, artykuł zawiera przykładowy kod funkcji Azure, która przetwarza żądanie HTTP i zwraca plik Excel. Ten przykład został przetestowany na Azure Functions v3.3.1.0+.

