C# Dilinde Blazor Kullanarak Excel Dosyasını Okuma

Blazor Read Excel File in C# Using IronXL (Example Tutorial)

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

Giriş

Blazor, Microsoft tarafından oluşturulan açık kaynaklı bir .NET Web framework'tür. Bir Blazor uygulaması, C# kodunu tarayıcı uyumlu JavaScript ve HTML'e derleyerek çalışır. Bu eğitimde, IronXL C# kütüphanesini kullanarak Blazor sunucu tarafı uygulamasında Excel belgelerini/çalışma sayfalarını okumanın en iyi ve kolay yöntemini paylaşacağım.

Demonstration of IronXL Viewing Excel in Blazor

IronXL ile başlayın


Adım 1 - Visual Studio'da Bir Blazor Projesi Oluşturun

Blazor Server Uygulaması'nda okumak ve açmak için aşağıdaki verileri içeren bir XLSX dosyam var:

Giriş XLSX Excel Sayfası Blazor Server Tarayıcısında Sonuç
Ad Soyadı ID
John Applesmith 1
Richard Smith 2
Sherry Robins 3
Browser View related to Adım 1 - Visual Studio'da Bir Blazor Projesi Oluşturun

Visual Studio IDE'den bir Blazor Projesi oluşturarak başlayın:

New Project related to Adım 1 - Visual Studio'da Bir Blazor Projesi Oluşturun

Blazor Server App Proje türünü seçin:

Choose Blazor Project Type related to Adım 1 - Visual Studio'da Bir Blazor Projesi Oluşturun

F5 anahtarıyla çözümü değiştirmeden Uygulamayı çalıştırın. Uygulamanın Fetch data sekmesine şu şekilde gidin:

First Run related to Adım 1 - Visual Studio'da Bir Blazor Projesi Oluşturun

Amacımız bir yükleme düğmesi ile Excel dosyamızı Blazor uygulamasına yüklemek ve ardından bu sayfada görüntülemek olacak.

Adım 2 - Çözümünüze IronXL'i Ekleyin

IronXL: .NET Excel Kütüphanesi (Kurulum Talimatları):

IronXL, Microsoft Excel'deki elektronik tabloyu bir nesne gibi ele almanızı sağlayan bir .NET kütüphanesidir ve geliştiricinin veri akışlarını manipüle etmek için C# ve .NET Framework'ün tüm gücünü kullanmasına olanak tanır. Bir geliştirici olarak, Excel belgelerinden/çalışma sayfalarından her bir satırın hücrelerini ve sütun bilgilerini uygulamalarımıza veya veritabanlarımıza alabileceğimiz güzel bir yol istiyoruz.

IronXL ile bir çalışma sayfasından hücre değerleri, hücre içeriği, resimler, referanslar ve biçimlendirme gibi her türlü bilgiyi almak mümkündür. IronXL, birçok açıdan NPOI'den daha iyidir. IronXL daha fazla fonksiyon sağlar ve karmaşık mantığı yazmayı kolaylaştırabilir. Ayrıca daha tercih edilebilir lisanslara sahiptir ve destek ekibi daha yetkindir.

IronXL, .NET'in en son sürümlerinin (8, 7 ve 6) ve .NET Core Framework 4.6.2+'nin tümünü destekler.

Çözümünüze IronXL'i eklemek için aşağıdaki yöntemlerden birini kullanın ve ardından çözümü derleyin.

Seçenek 2A - NuGet Paket Yöneticisi Kullanımı

Install-Package IronXL.Excel

Seçenek 2B - csproj dosyasına PackageReference ekleyin

Çözümünüzün .csproj dosyasındaki herhangi bir <ItemGroup> satırına aşağıdaki satırı ekleyerek IronXL'yi projenize doğrudan ekleyebilirsiniz:

<PackageReference Include="IronXl.Excel" Version="*" />
<PackageReference Include="IronXl.Excel" Version="*" />
XML

Visual Studio'da burada gösterildiği gibi:

Add Ironxl Csproj related to Seçenek 2B - csproj dosyasına PackageReference ekleyin

Adım 3 - Dosya Yükleme ve Görüntüleme Kodlama

Visual Studio Çözüm Görünümü'nde Pages/ klasörüne gidin ve FetchData.razor dosyasını bulun. Başka herhangi bir razor dosyası da kullanabilirsiniz, ancak biz Blazor Sunucu Uygulaması Şablonu ile birlikte gelen bu dosyayı kullanacağız.

Dosya içeriğini aşağıdaki kod ile değiştirin:

@using IronXL;
@using System.Data;

@page "/fetchdata"

<PageTitle>Excel File Viewer</PageTitle>

<h1>Open Excel File to View</h1>

<InputFile OnChange="@OpenExcelFileFromDisk" />

<table>
    <thead>
        <tr>
            @foreach (DataColumn column in displayDataTable.Columns)
            {
                <th>
                    @column.ColumnName
                </th>
            }
        </tr>
    </thead>
    <tbody>
        @foreach (DataRow row in displayDataTable.Rows)
        {
            <tr>
                @foreach (DataColumn column in displayDataTable.Columns)
                {
                    <td>
                        @row[column.ColumnName].ToString()
                    </td>
                }
            </tr>
        }
    </tbody>
</table>

@code {
    // Create a DataTable instance
    private DataTable displayDataTable = new DataTable();

    // This method is triggered when a file is uploaded
    async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
    {
        IronXl.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";

        // Load the uploaded file into a MemoryStream
        MemoryStream ms = new MemoryStream();

        await e.File.OpenReadStream().CopyToAsync(ms);
        ms.Position = 0;

        // Create an IronXL workbook from the MemoryStream
        WorkBook loadedWorkBook = WorkBook.FromStream(ms);
        WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; // Or use .GetWorkSheet()

        // Add header Columns to the DataTable
        RangeRow headerRow = loadedWorkSheet.GetRow(0);
        for (int col = 0; col < loadedWorkSheet.ColumnCount; col++)
        {
            displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
        }

        // Populate the DataTable with data from the Excel sheet
        for (int row = 1; row < loadedWorkSheet.RowCount; row++)
        {
            IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
            displayDataTable.Rows.Add(excelRow.ToArray());
        }
    }
}
@using IronXL;
@using System.Data;

@page "/fetchdata"

<PageTitle>Excel File Viewer</PageTitle>

<h1>Open Excel File to View</h1>

<InputFile OnChange="@OpenExcelFileFromDisk" />

<table>
    <thead>
        <tr>
            @foreach (DataColumn column in displayDataTable.Columns)
            {
                <th>
                    @column.ColumnName
                </th>
            }
        </tr>
    </thead>
    <tbody>
        @foreach (DataRow row in displayDataTable.Rows)
        {
            <tr>
                @foreach (DataColumn column in displayDataTable.Columns)
                {
                    <td>
                        @row[column.ColumnName].ToString()
                    </td>
                }
            </tr>
        }
    </tbody>
</table>

@code {
    // Create a DataTable instance
    private DataTable displayDataTable = new DataTable();

    // This method is triggered when a file is uploaded
    async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
    {
        IronXl.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";

        // Load the uploaded file into a MemoryStream
        MemoryStream ms = new MemoryStream();

        await e.File.OpenReadStream().CopyToAsync(ms);
        ms.Position = 0;

        // Create an IronXL workbook from the MemoryStream
        WorkBook loadedWorkBook = WorkBook.FromStream(ms);
        WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; // Or use .GetWorkSheet()

        // Add header Columns to the DataTable
        RangeRow headerRow = loadedWorkSheet.GetRow(0);
        for (int col = 0; col < loadedWorkSheet.ColumnCount; col++)
        {
            displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
        }

        // Populate the DataTable with data from the Excel sheet
        for (int row = 1; row < loadedWorkSheet.RowCount; row++)
        {
            IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
            displayDataTable.Rows.Add(excelRow.ToArray());
        }
    }
}
Imports IronXL
Imports System.Data

@page "/fetchdata"

<PageTitle>Excel File Viewer</PageTitle>

<h1>Open Excel File to View</h1>

<InputFile OnChange="@OpenExcelFileFromDisk" />

<table>
    <thead>
        <tr>
            @For Each column As DataColumn In displayDataTable.Columns
                <th>
                    @column.ColumnName
                </th>
            Next
        </tr>
    </thead>
    <tbody>
        @For Each row As DataRow In displayDataTable.Rows
            <tr>
                @For Each column As DataColumn In displayDataTable.Columns
                    <td>
                        @row(column.ColumnName).ToString()
                    </td>
                Next
            </tr>
        Next
    </tbody>
</table>

@code {
    ' Create a DataTable instance
    Private displayDataTable As New DataTable()

    ' This method is triggered when a file is uploaded
    Private Async Function OpenExcelFileFromDisk(e As InputFileChangeEventArgs) As Task
        IronXl.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY"

        ' Load the uploaded file into a MemoryStream
        Dim ms As New MemoryStream()

        Await e.File.OpenReadStream().CopyToAsync(ms)
        ms.Position = 0

        ' Create an IronXL workbook from the MemoryStream
        Dim loadedWorkBook As WorkBook = WorkBook.FromStream(ms)
        Dim loadedWorkSheet As WorkSheet = loadedWorkBook.DefaultWorkSheet ' Or use .GetWorkSheet()

        ' Add header Columns to the DataTable
        Dim headerRow As RangeRow = loadedWorkSheet.GetRow(0)
        For col As Integer = 0 To loadedWorkSheet.ColumnCount - 1
            displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString())
        Next

        ' Populate the DataTable with data from the Excel sheet
        For row As Integer = 1 To loadedWorkSheet.RowCount - 1
            Dim excelRow As IEnumerable(Of String) = loadedWorkSheet.GetRow(row).ToArray().Select(Function(c) c.ToString())
            displayDataTable.Rows.Add(excelRow.ToArray())
        Next
    End Function
}
$vbLabelText   $csharpLabel

Özet

<InputFile> bileşeni, bu web sayfasına bir dosya yüklemenizi sağlar. Çağrılan olay geri çağrısını, alttaki @code bloğundaki asenkron yöntem olan OpenExcelFileFromDisk'yi çağıracak şekilde ayarladık. HTML, Excel sayfanızı sekme üzerinde bir tablo olarak görüntüler.

IronXl.Excel, çok çeşitli elektronik tablo formatlarını okumak için bağımsız bir .NET yazılım kütüphanesidir. Microsoft Excel'in kurulu olmasını gerektirmez ve Interop'a bağımlı değildir.


Daha Fazla Okuma

Documentation related to Daha Fazla Okuma

API Referansını Görüntüle

IronXL'nin API Referansını keşfedin, IronXL'nin tüm özelliklerini, ad alanlarını, sınıflarını, yöntemlerini, alanlarını ve enumlarını ayrıntılı olarak özetler.

API Referansını Görüntüle

Yazılım ürününü indirin.

Sıkça Sorulan Sorular

Blazor sunucu tarafı bir uygulamada Excel dosyalarını nasıl okuyabilirim?

Blazor sunucu tarafı bir uygulamada Excel dosyalarını okumak için IronXL C# kütüphanesini kullanabilirsiniz. Bu, kütüphaneyi NuGet Paket Yöneticisi ile yükleyip, Excel verilerini okumak ve görüntülemek için kod yazarak Blazor projenizle kolayca entegre etmenizi sağlar.

Excel dosyalarını okumak için bir Blazor projesi kurma adımları nelerdir?

İlk olarak, NuGet Paket Yöneticisi aracılığıyla IronXL'i yükleyin. Ardından, Blazor uygulamanızda bir dosya yükleme butonu oluşturun. Yüklenen Excel dosyasını okumak için IronXL'i kullanın ve uygulamayı veriyi Razor bileşenleri kullanarak bir tabloya göstermesi için yapılandırın.

Excel yüklü olmadan bir Blazor uygulamasında Excel dosyaları okumak mümkün mü?

Evet, IronXL ile sisteminizde Microsoft Excel yüklü olmadan bir Blazor uygulamasında Excel dosyalarını okuyabilir ve manipüle edebilirsiniz.

Excel verilerini bir Blazor uygulamasında nasıl gösterebilirim?

IronXL kullanarak Excel dosyasını okuduktan sonra, veriyi bir tablo formatında gösteren Razor bileşenlerini Blazor uygulamanızda kullanabilirsiniz, bu da kullanıcı arayüzünü geliştirir.

IronXL'in diğer Excel kütüphanelerine göre ne gibi faydaları var?

IronXL, geniş kapsamlı işlevsellik, karmaşık mantığı kolayca işleme, üstün lisanslama koşulları ve özel destek sunarak NPOI gibi alternatiflere göre tercih edilebilir bir seçim yapar.

IronXL hangi .NET sürümleri tarafından destekleniyor?

IronXL, 8, 7 ve 6 dahil olmak üzere tüm en yeni .NET sürümlerini destekler, ayrıca .NET Core Framework 4.6.2+ dahil olmak üzere modern uygulamalarla geniş uyumluluk sağlar.

Bir Excel kütüphanesini benim Blazor projemle nasıl entegre ederim?

IronXL gibi bir Excel kütüphanesini Blazor projenize dotnet add package IronXL.Excel komutunu kullanarak NuGet Paket Yöneticisiyle entegre edebilir veya .csproj dosyasına bir PackageReference ekleyerek entegre edebilirsiniz.

Blazor uygulamam bir Excel dosyasını okumada başarısız olursa hangi sorun giderme adımlarını atabilirim?

IronXL'in NuGet üzerinden doğru şekilde yüklendiğinden emin olun ve Blazor uygulamanızın diskten dosya okuma izinlerine sahip olduğundan emin olun. Excel dosya yolunun doğru olduğundan ve dosya formatının IronXL tarafından desteklendiğinden emin olun.

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ı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 2,052,917 | Sürüm: 2026.6 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronXL.Excel
örnek çalıştır verinizin bir hesap tablosu haline geldiğini izleyin.