Blazor Read Excel File in C# Using IronXL (Example Tutorial)
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.
Blazor'da Excel Dosyası Nasıl Okunur
- Blazor'da Excel dosyasını okumak için C# kütüphanesini kurun
- Blazor Uygulamanıza bir Dosya Yükleme butonu oluşturun
- C# kütüphanesi kullanarak diskteki Excel dosyasını okuyun
- Blazor uygulamasını, okunan verileri pencerede bir tabloda gösterecek şekilde yapılandırın
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ç | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Visual Studio IDE'den bir Blazor Projesi oluşturarak başlayın:
Blazor Server App Proje türünü seçin:
F5 anahtarıyla çözümü değiştirmeden Uygulamayı çalıştırın. Uygulamanın Fetch data sekmesine şu şekilde gidin:
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="*" />
Visual Studio'da burada gösterildiği gibi:
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
}
Ö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
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üleSı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.

