IRONSOFTWAREHOME
IRONXL KULLANARAK

IronXL Kullanarak Blazor Uygulamasında Excel'e Nasıl Aktarılır

Curtis Chau
Curtis Chau
Updated: 21 Nisan 2026

Verileri Excel'e ihraç etmek, hemen hemen her web uygulamasının gereksinimi olan bir şeydir, ister raporlar, envanter listeleri veya müşteri fatura oluşturmak olsun. Microsoft Office gerektirmeden bunu Blazor Server uygulamalarında güvenilir bir şekilde gerçekleştirmek zorlu olabilir. İşte burada IronXL devreye giriyor. Sunucunuzdan doğrudan Excel dosyaları oluşturmanıza, biçimlendirmenize ve indirmenize olanak tanır, herhangi bir Office kurulumu gerektirmez, ve Blazor ile kesintisiz entegre olur. Bu kılavuzda, uygulamanıza profesyonel Excel ihraç özellikleri eklemenin ne kadar basit olduğunu göreceksiniz. Haydi başlayalım.

Verileri Excel'e İhraç Etmek İçin IronXL Başlangıç ​​Rehberi

IronXL'i Blazor Server uygulamasına kurmak minimal yapılandırma gerektirir. Visual Studio 2022 veya üstü sürümlerde .NET 6 veya daha üstünü hedefleyen yeni bir Blazor Server projesi oluşturarak başlayın.

NuGet Paket Yöneticisi Konsolu aracılığıyla IronXL'i yükleyin (alternatif yöntemler için tam kurulum kılavuzumuzu inceleyin):

PM > Install-Package IronXL.Excel

Bir JavaScript dosyası indirme yardımcı fonksiyonu oluşturun. Wwwroot klasörünüze yeni bir JavaScript dosyası olan excelExport.js ekleyin:

window.downloadFileFromStream = async (fileName, contentStreamReference) => {
    const arrayBuffer = await contentStreamReference.arrayBuffer();
    const blob = new Blob([arrayBuffer]);
    const url = URL.createObjectURL(blob);
    const anchorElement = document.createElement('a');
    anchorElement.href = url;
    anchorElement.download = fileName ?? 'export.xlsx';
    anchorElement.click();
    anchorElement.remove();
    URL.revokeObjectURL(url);
}
JavaScript

Bu script'i _Host.cshtml dosyanıza dahil edin:

<script src="~/excelExport.js"></script>
HTML

Bu JavaScript fonksiyonu, tarayıcı tarafındaki indirme mekanizmasını işleterek, Blazor Server uygulamanızın byte akışını indirilebilir bir dosyaya dönüştürür. Fonksiyon, geçici bir blob URL oluşturur, indirmeyi başlatır ve bellek sızıntılarını önlemek için kaynak girdilerini temizler.

Veri Kaynağını IronXL ile Excel Dosyalarına İhraç Etme

İş mantığınıza hizmet etmek için bir Excel ihracat hizmeti oluşturun. Bu hizmet, IronXL işlevselliğini kapsar ve Blazor Excel ihracat uygulamanızda farklı ihracat senaryoları için yeniden kullanılabilir yöntemler sunar:

using IronXL;
using System.IO;
using ExportExcel.Models;
public class ExcelExportService
{
    public byte[] GenerateSalesReport(List<SalesData> salesData)
    {
        try
        {
            var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
            workbook.Metadata.Author = "Sales Department";
            var worksheet = workbook.CreateWorkSheet("Monthly Sales");
            worksheet["A1"].Value = "Date";
            worksheet["B1"].Value = "Product";
            worksheet["C1"].Value = "Quantity";
            worksheet["D1"].Value = "Revenue";
            worksheet["E1"].Value = "Profit Margin";
            var headerRange = worksheet["A1:E1"];
            headerRange.Style.Font.Bold = true;
            headerRange.Style.BackgroundColor = "#4472C4";
            headerRange.Style.Font.Color = "#FFFFFF";
            int row = 2;
            foreach (var sale in salesData)
            {
                worksheet[$"A{row}"].Value = sale.Date.ToString("yyyy-MM-dd");
                worksheet[$"B{row}"].Value = sale.Product ?? "Unknown";
                worksheet[$"C{row}"].Value = sale.Quantity;
                worksheet[$"D{row}"].Value = sale.Revenue;
                worksheet[$"E{row}"].Value = $"=D{row}*0.15";
                row++;
            }
            worksheet.AutoSizeColumn(0, true);
            using var ms = workbook.ToStream();
            return ms.ToArray();
        }
        catch (Exception ex)
        {
    // If the program fails to return file
            throw new InvalidOperationException("Failed to generate sales report", ex);
        }
    }
}

Bu hizmet, yeni defterler ve çalışma sayfaları oluşturmak, biçimlendirilmiş başlıklar eklemek, veri kaynağınızdan getirilen verilerle satırları doldurmak, formüller uygulamak ve potansiyel hataları ele almak gibi IronXL'in anahtar özelliklerini gösterir. AutoSizeColumn metodu, sütunların içerik uzunluğundan bağımsız olarak düzgün görüntülenmesini sağlar. Daha gelişmiş biçimlendirme seçenekleri için, hücre stil kılavuzumuzu keşfedin.

Blazor'da Dosya İndirme Nasıl Uygulanır?

İhracat hizmetini kullanan ve kullanıcı etkileşimlerini yöneten bir Razor bileşeni oluşturun:

@page "/excel-export"
@using ExportExcel.Models
@inject ExcelExportService ExcelService
@inject IJSRuntime JS
<h3>Excel Export Dashboard</h3>
<div class="export-section">
    <button class="btn btn-primary" @onclick="ExportSalesReport" disabled="@isExporting">
        @if (isExporting)
        {
            <span>Generating...</span>
        }
        else
        {
            <span>Export Sales Report</span>
        }
    </button>
    @if (!string.IsNullOrEmpty(errorMessage))
    {
        <div class="alert alert-danger mt-2">@errorMessage</div>
    }
</div>
@code {
    private bool isExporting = false;
    private string errorMessage = "";
    private async Task ExportSalesReport()
    {
        try
        {
            isExporting = true;
            errorMessage = "";
            // Generate sample data - replace with actual data source
            var salesData = GetSalesData();
            // Generate Excel file
            var fileBytes = ExcelService.GenerateSalesReport(salesData);
            // Trigger download using a memory stream to handle the file
            using var stream = new MemoryStream(fileBytes);
            using var streamRef = new DotNetStreamReference(stream);
            await JS.InvokeVoidAsync("downloadFileFromStream",
                $"SalesReport_{DateTime.Now:yyyyMMdd}.xlsx", streamRef);
        }
        catch (Exception ex)
        {
            errorMessage = "Export failed. Please try again.";
            // Log exception details for debugging
        }
        finally
        {
            isExporting = false;
        }
    }
    private List<SalesData> GetSalesData()
    {
        // Return your actual data here
        return new List<SalesData>
        {
            new() { Date = DateTime.Now, Product = "Widget A",
                   Quantity = 100, Revenue = 5000 },
            new() { Date = DateTime.Now.AddDays(-1), Product = "Widget B",
                   Quantity = 75, Revenue = 3750 }
        };
    }
}

Bu bileşen, ihracat sırasında kullanıcı geri bildirimlerini sağlar, hataları nazikçe ele alır ve zaman damgalı dosya adları oluşturur. DotNetStreamReference sarmalayıcısı, ikili verilerin JavaScript'e etkin bir şekilde akışını sağlar.

Çıktı

Kodumuzu çalıştırdığımızda, sayfamızda ihraç etme işlemini yürütecek butonu göreceğiz.

IronXL kullanarak bir Blazor'da Excel'e Nasıl Aktarılır: Şekil 1 - Örnek Blazor sayfası

Butona tıkladığımızda, veriler yeni bir Excel belgesine kaydedilecek ve ihraç edilen dosya indirilecektir.

IronXL kullanarak bir Blazor'da Excel'e Nasıl Aktarılır: Şekil 2 - Verilerin bir Excel dosyasına aktarılmış hali

IronXL Excel İhracatınıza Hangi Gelişmiş Özellikleri Ekleyebilir?

IronXL, profesyonel görünümlü ihracatlar için gelişmiş Excel özelliklerini destekler. Bir envanter yönetimi senaryosunda, koşullu biçimlendirme ve çoklu çalışma sayfaları ekleyebilirsiniz:

using IronXL;
using ExportExcel.Models;
using System.IO;
namespace ExportExcel.Services
{
    public class InventoryExportService
    {
        public byte[] GenerateInventoryReport(List<InventoryItem> items)
        {
            var workbook = WorkBook.Create();
            var details = workbook.CreateWorkSheet("Inventory Details");
            // Add headers
            details["A1"].Value = "SKU";
            details["B1"].Value = "Name";
            details["C1"].Value = "Quantity";
            // Apply bold font for headers
            var headerRange = details["A1:C1"];
            headerRange.Style.Font.Bold = true;
            for (int i = 0; i < items.Count; i++)
            {
                var row = i + 2; // start from row 2
                var item = items[i];
                details[$"A{row}"].Value = item.SKU;
                details[$"B{row}"].Value = item.Name;
                details[$"C{row}"].Value = item.Quantity;
                // Highlight low stock items
                if (item.Quantity < item.ReorderLevel)
                {
                    details[$"C{row}"].Style.BackgroundColor = "#FFB6B6";
                }
            }
            using var stream = workbook.ToStream();
            return stream.ToArray();
        }
    }
}

IronXL, birden fazla çalışma sayfasını zahmetsizce yönetir, işletme kurallarına göre koşullu biçimlendirme uygular ve gerektiğinde pivot tablolar ve grafikler gibi gelişmiş Excel özelliklerini destekler. Detaylı API dokümantasyonu için kapsamlı referans kılavuzumuza göz atın.

IronXL kullanarak bir Blazor'da Excel'e Nasıl Aktarılır: Şekil 3 - Gelişmiş özellikler örnek çıktısı

Sonuç

IronXL, Excel dosya oluşturmayı Blazor Server uygulamalarında karmaşık bir zorluktan basit bir göreve dönüştürür. Sezgisel API'si, Microsoft Office kurulumuna ihtiyaç duymadan gelişmiş Excel özelliklerine erişim sağlar. Basit veri ihracatlarından, formüller ve biçimlendirme ile karmaşık çok sayfalı raporlara kadar IronXL hepsini mükemmel performans ve güvenilirlikle ele alır.

Blazor uygulamalarınızı profesyonel Excel ihraç yetenekleriyle geliştirmeye hazır mısınız? Üretim dağıtımı için ücretsiz denemenizi başlatın.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez