Blazor'da C# Kullanarak Bir Excel Dosyası Nasıl Okunur

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 çerçevesidir. Bir Blazor uygulaması, C# kodunu tarayıcı uyumlu JavaScript ve HTML'e derleyerek çalışır. Bu eğitimde, Blazor sunucu tarafı uygulamasında IronXL C# kütüphanesini kullanarak Excel belgelerini/çalışma sayfalarını okumanın en iyi ve kolay yoluyla ilgili bilgi 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 okuyup açacağım şu verileri içeren bir XLSX dosyam var:

Girdiler: XLSX Excel Sayfası Sonuç: Blazor Sunucu Tarayıcıda
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'sinden 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

Çözümü değiştirmeden uygulamayı F5 tuşu ile ç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, Excel dosyamızı bir yükleme butonu ile Blazor uygulamasına yüklemek ve sonra bu sayfada göstermek olacak.

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

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

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

IronXL ile, bir çalışma sayfasından hücre değerleri, hücre içerikleri, görüntüler, 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 işlev sunar ve karmaşık mantık yazmayı kolaylaştırabilir. Ayrıca, daha cazip lisanslara sahip ve destek ekibi daha yetkindir.

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

IronXL'i aşağıdaki yöntemlerden birini kullanarak çözümünüze ekleyin ve ardından çözümü derleyin.

Seçenek 2A - NuGet Paket Yöneticisini Kullanma

Install-Package IronXl.Excel

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

Çözümünüzdeki .csproj dosyasındaki herhangi bir <ItemGroup>'a aşağıdaki satırı ekleyerek IronXL'yi doğrudan projenize 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 Ekleme

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

Visual Studio Çözüm Görünümü'nde, Pages/ klasörüne gidin ve FetchData.razor dosyasını bulun. Başka bir razor dosyası da kullanabilirsiniz, ancak Blazor Server Uygulama Şablonu ile birlikte geldiği için bunu kullanacağız.

Dosya içeriğini aşağıdaki kodla 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ında bir dosya yüklemenizi sağlar. Çağrılan olayı OpenExcelFileFromDisk adlı async metodu alt kısımdaki @code bloğunda çağıracak şekilde ayarladık. HTML, Excel sayfanızı sekmede bir tablo olarak oluşturacaktır.

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 kurulmasını gerektirmez ve Interop'a bağımlı değildir.


Daha Fazla Okuma

Documentation related to Daha Fazla Okuma

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

IronXL'nin tüm özellikleri, ad alanları, sınıflar, yöntem alanları ve enumlarının detaylarını açıklayan API Referansını keşfedin.

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

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

Sıkça Sorulan Sorular

Bir Blazor sunucu tarafı uygulamasında Excel dosyalarını nasıl okuyabilirim?

Blazor sunucu tarafı uygulamasında Excel dosyalarını okumak için IronXL C# kütüphanesini kullanabilirsiniz. Bu kütüphane, NuGet Paket Yöneticisi kullanarak kütüphaneyi yüklemenizi ve ardından Excel verilerini okumak ve görüntülemek için kod uygulamanızı sağlar.

Excel dosyalarını okumak için bir Blazor projesi oluşturmanın adımları nelerdir?

Öncelikle, IronXL'i NuGet Paket Yöneticisi aracılığıyla yükleyin. Ardından, Blazor uygulamanızda bir dosya yükleme butonu oluşturun. IronXL'i kullanarak yüklenen Excel dosyasını okuyun ve uygulamayı, verileri tablo halinde Razor bileşenlerini kullanarak gösterecek şekilde yapılandırın.

Excel yüklü olmadan bir Blazor uygulamasında Excel dosyaları okunabilir mi?

Evet, IronXL ile Microsoft Excel sisteminizde yüklü olmadan Blazor uygulamasında Excel dosyalarını okuyabilir ve işleyebilirsiniz.

Blazor uygulamasında Excel verilerini nasıl görüntüleyebilirim?

IronXL kullanarak Excel dosyasını okuduktan sonra, Blazor uygulamanızda verileri tablo formatında görüntülemek için Razor bileşenlerini kullanabilirsiniz, bu da kullanıcı arayüzünü geliştirir.

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

IronXL, yoğun işlevsellik, karmaşık mantığı kolay ele alma, üstün lisanslama koşulları ve özel destek sunarak NPOI gibi alternatiflerden daha tercih edilen bir seçenek haline gelir.

IronXL'in Excel manipülasyonu için desteklediği .NET sürümleri hangileridir?

IronXL, modern uygulamalarla geniş bir uyumluluk sağlayarak .NET'in en son sürümleri olan 8, 7, 6 ve .NET Core Framework 4.6.2+ dahil tüm sürümleri destekler.

Blazor projemde Excel kütüphanesini nasıl entegre ederim?

Blazor projenize IronXL gibi bir Excel kütüphanesini entegre edebilirsiniz. Bunun için NuGet Paket Yöneticisi ile dotnet add package IronXl.Excel komutunu kullanabilir veya .csproj dosyasına bir PackageReference ekleyebilirsiniz.

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

IronXL'in NuGet aracılığıyla doğru bir şekilde yüklendiğinden ve Blazor uygulamanızın diskten dosya okumak için gerekli izinlere 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 sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 1,974,422 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronXl.Excel
bir örnek çalıştırın verilerinizin bir elektronik tabloya dönüştüğünü izleyin.