ASP.NET Core'da Excel Dosyası Nasıl Açılır
Bu eğitim, IronXL kütüphanesi kullanılarak ASP.NET Core uygulamasında bir Excel dosyasının nasıl açılacağını gösterecektir. Excel dosyalarını okuma temel adımlarını kapsayacak ve ardından verileri görüntüleyip, değiştirilmiş verileri yeniden dosyaya nasıl kaydedileceğini gösterecektir.
IronXL Nedir?
IronXL, Microsoft Excel veya Office Interop bağımlılıkları gerektirmeden Excel belgeleriyle çalışmak için işlevsellik sağlayan bir .NET Excel kütüphanesidir. .NET Framework ve .NET Core'u destekleyerek, sadece birkaç satır kodla Excel dosyalarını yazma, değiştirme ve okuma yeteneklerini sunar. Excel dosyalarını okumaya yönelik ayrıntılı bir eğitim için lütfen bu Excel eğitimine başvurun.
IronXL kütüphanesi Excel belgelerini okuma ve yazma, onlardan veri çekme, veriyi değiştirme ve hatta sıfırdan yeni Excel dosyaları oluşturma yeteneğine sahiptir. IronXL sadece .XLS formatını değil, aynı zamanda .XLSX ile de uyumludur, Microsoft tarafından e-tabloları temsil etmek için geliştirilen XML tabanlı bir dosya formatıdır.
Ön Koşullar
Koda dalmadan önce aşağıdakilere sahip olduğunuzdan emin olun:
- .NET Core 3.1 veya daha yüksek sürümü yüklü.
- .NET geliştirme için uygun bir IDE (Microsoft Visual Studio önerilir).
- ASP.NET Core ve Razor Sayfalar hakkında temel bilgi.
Yeni bir .NET Core Projesi Oluşturun
- Microsoft Visual Studio'yu açın ve "Create a new project" seçeneğini seçin.
- Proje şablonları listesinden "ASP.NET Core Web App" seçin ve "İleri"ye tıklayın.
- Projeniz için bir ad verin, örneğin, "Open_ExcelFile.NET_Core", bir konum seçin ve "İleri"ye tıklayın.
- Hedef framework olarak ".NET Core" ve sürüm olarak "ASP.NET Core 3.1 veya daha yüksek" seçin. "Proje şablonu" bölümünde "Web Application" seçin ve "Create"ye tıklayın.
IronXL Paketi Yükleyin
Bir sonraki adım, bu yeni oluşturulan projeye IronXL paketini yüklemektir:
- Solution Explorer'da projeye sağ tıklayın ve "Manage NuGet Packages" seçeneğini seçin.
- "Browse" sekmesinde "IronXL" arayın ve IronXL.Excel paketi için "Yükle"ye tıklayın.
NuGet Paket Yöneticisi UI'ında IronXL paketini arayın ve yükleyin
- Paketin yüklenmesi için bekleyin.
Artık ASP.NET Core projeniz ayarlıdır ve IronXL kütüphanesi yüklü ve kullanıma hazırdır.
Razor Sayfası Oluşturun
Şimdi, Excel dosyasını açmak için kod yazacağımız bir Razor Sayfası oluşturalım.
- Solution Explorer'da "Pages" klasörüne sağ tıklayın ve "Ekle" > "Razor Page" seçeneğini seçin.
- Sayfa adı olarak "ExcelOpener" girin ve "Add"e tıklayın.
Yeni bir Razor Sayfası oluşturun
Bu işlem iki dosya oluşturacaktır: ExcelOpener.cshtml ve ExcelOpener.cshtml.cs.
ExcelOpener.cshtml dosyası sayfanın HTML işaretlemesini, ExcelOpener.cshtml.cs dosyası ise sayfanın C# arka plan kodunu içerir.
Excel Dosyalarını Okuma
Koda dalalım. Sağlanan ExcelOpenerModel sınıfı bir Razor Sayfası Modelidir. Bu sınıfın, Excel dosyasından okunan verileri depolamak için kullanılacak Data adlı bir List<List<string>> özelliği vardır.
public List<List<string>> Data { get; set; }
public ExcelOpenerModel()
{
Data = new List<List<string>>();
}
public List<List<string>> Data { get; set; }
public ExcelOpenerModel()
{
Data = new List<List<string>>();
}
Public Property Data() As List(Of List(Of String))
'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: public ExcelOpenerModel()
Public Sub New()
Data = New List(Of List(Of String))()
End Sub
OnGet yönteminde, IronXL, bir Excel dosyasını yüklemek ve varsayılan çalışma sayfasından (çalışma kitabındaki ilk sayfa) verileri okumak için kullanılır. Her satır bir List<string> olarak temsil edilir ve bu listeler daha sonra Data özelliğine eklenir.
public void OnGet()
{
try
{
Data = new List<List<string>>();
// Load your Excel file
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
// Select your Worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < sheet.RowCount; i++)
{
var row = new List<string>();
for (int j = 0; j < sheet.ColumnCount; j++)
{
row.Add(sheet.GetCellAt(i, j).Value.ToString());
}
Data.Add(row);
}
}
catch (Exception ex)
{
// Handle exceptions here
Console.WriteLine(ex.Message);
}
}
public void OnGet()
{
try
{
Data = new List<List<string>>();
// Load your Excel file
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
// Select your Worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < sheet.RowCount; i++)
{
var row = new List<string>();
for (int j = 0; j < sheet.ColumnCount; j++)
{
row.Add(sheet.GetCellAt(i, j).Value.ToString());
}
Data.Add(row);
}
}
catch (Exception ex)
{
// Handle exceptions here
Console.WriteLine(ex.Message);
}
}
Public Sub OnGet()
Try
Data = New List(Of List(Of String))()
' Load your Excel file
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
' Select your Worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
For i As Integer = 0 To sheet.RowCount - 1
Dim row = New List(Of String)()
For j As Integer = 0 To sheet.ColumnCount - 1
row.Add(sheet.GetCellAt(i, j).Value.ToString())
Next j
Data.Add(row)
Next i
Catch ex As Exception
' Handle exceptions here
Console.WriteLine(ex.Message)
End Try
End Sub
Anahtar yöntemlerin açıklaması
WorkBook.Load(filepath): Bu yöntem, belirtilen dosya yolundan Excel belgesini yükler. Excel sayfasını yüklemek ve okumak için yardımcı olur.workbook.DefaultWorkSheet: Bu özellik, Excel elektronik tablosundaki varsayılan (ilk) Excel çalışma sayfasını alır.sheet.GetCellAt(i, j).Value.ToString(): Belirtilen satır ve sütun dizinlerindeki hücreyi alır ve değerini bir dizeye dönüştürür. Bu, satır ve sütun indekslerine dayalı olarak bir Excel dosyasında belirli hücrelere veya aralıklara erişim sağlayabilen bir dizin yöntemi örneğidir.
Kısa Açıklama
ExcelOpener.cshtml.cs dosyasında, ExcelOpenerModel adlı bir sınıf Razor Sayfası modelini temsil eder. Bu, Excel dosyasındaki verileri tutacak olan Data adında, List<List<string>> türünde bir özelliği içerir.
Sayfa talep edildiğinde çağrılan OnGet yöntemi, Excel dosyasından verileri okumaktan sorumludur. IronXL kullanarak Excel dosyasını yükler, varsayılan çalışma sayfasını seçer ve Data özelliğini doldurmak için satır ve sütunlar üzerinde iterasyon yapar.
Excel Dosyalarını Yazma
ExcelOpenerModel sınıfındaki OnPost yöntemi, Excel dosyasındaki değişiklikleri kaydetmek için kullanılır. İlk olarak, Excel dosyasını yükler ve varsayılan çalışma sayfasını alır. Daha sonra, Data değerlerini çalışma sayfasındaki hücrelere yazar ve çalışma kitabını yeni bir dosyaya kaydeder.
public void OnPost()
{
try
{
// Load your Excel file
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
// Select your Worksheet
var sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < Data.Count; i++)
{
for (int j = 0; j < Data[i].Count; j++)
{
sheet.SetCellValue(i, j, Data[i][j]);
}
}
// Save the Excel file
var filename = @"C:\ModifiedData.xlsx";
workbook.SaveAs(filename);
}
catch (Exception ex)
{
// Handle exceptions here
Console.WriteLine(ex.Message);
}
}
public void OnPost()
{
try
{
// Load your Excel file
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
// Select your Worksheet
var sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < Data.Count; i++)
{
for (int j = 0; j < Data[i].Count; j++)
{
sheet.SetCellValue(i, j, Data[i][j]);
}
}
// Save the Excel file
var filename = @"C:\ModifiedData.xlsx";
workbook.SaveAs(filename);
}
catch (Exception ex)
{
// Handle exceptions here
Console.WriteLine(ex.Message);
}
}
Public Sub OnPost()
Try
' Load your Excel file
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
' Select your Worksheet
Dim sheet = workbook.DefaultWorkSheet
For i As Integer = 0 To Data.Count - 1
Dim j As Integer = 0
Do While j < Data(i).Count
sheet.SetCellValue(i, j, Data(i)(j))
j += 1
Loop
Next i
' Save the Excel file
Dim filename = "C:\ModifiedData.xlsx"
workbook.SaveAs(filename)
Catch ex As Exception
' Handle exceptions here
Console.WriteLine(ex.Message)
End Try
End Sub
Önemli Yöntemler Açıklama
sheet.SetCellValue(i, j, Data[i][j]): Bu yöntem, belirtilen satır ve sütun dizinlerindeki hücrenin değerini ayarlar.workbook.SaveAs(filepath): Bu yöntem, Excel çalışma kitabını belirtilen dosya yoluna kaydeder.
Kısa Açıklama
Form gönderildiğinde çağrılan OnPost yöntemi, değiştirilen verileri tekrar Excel dosyasına kaydeder. Excel dosyasını yükler, varsayılan çalışma sayfasını seçer ve formdan alınan değiştirilen verilere göre hücre değerlerini günceller.
Excel Verilerini Düzenlemek İçin HTML Formu
ExcelOpener.cshtml dosyasında, Excel dosyasından verileri görüntülemek ve düzenlemek için bir form tanımlanmıştır. Her bir hücre değeri bir metin giriş alanında görüntülenir. Düzenlendikten sonra, 'Kaydet' düğmesine tıklamak formu gönderecek, OnPost yöntemini tetikleyecek ve değişiklikleri Excel dosyasına kaydedecektir.
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel
<form method="post">
<table class="table table-bordered table-striped">
@for (int i = 0; i < Model.Data.Count; i++)
{
<tr>
@for (int j = 0; j < Model.Data[i].Count; j++)
{
<td>
<input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" />
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" />
</form>
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel
<form method="post">
<table class="table table-bordered table-striped">
@for (int i = 0; i < Model.Data.Count; i++)
{
<tr>
@for (int j = 0; j < Model.Data[i].Count; j++)
{
<td>
<input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" />
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" />
</form>
Sayfaya Gitme
_Layout.cshtml dosyasında, sayfaya bir bağlantı gezinme menüsüne eklenmiştir. Bu bağlantıya tıklayarak Excel açıcı sayfasına gidebilirsiniz.
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
Uygulamayı Çalıştırma ve Çıktısını Açıklama
Visual Studio'da 'Build' düğmesine tıklayarak veya Ctrl + Shift + B kısayolunu kullanarak uygulamayı derleyin. Uygulamayı F5 tuşuna basarak veya Visual Studio'da "Başlat" butonuna tıklayarak çalıştırın.
Uygulama çalıştığında, gezinme çubuğundaki ilgili bağlantıya tıklayarak "ExcelOpener" sayfasına gidin. Sayfa, Excel'deki verileri tablo formatında gösterecektir.
Tablodaki verileri değiştirebilir ve değişiklikleri Excel dosyasına kaydetmek için "Kaydet" butonuna tıklayabilirsiniz.
Web Uygulamasında Excel verilerini görüntüle
Bu eğitimde IronXL kullanarak ASP.NET Core uygulamasında bir Excel dosyasının nasıl açılacağını gösterdik. IronXL, Excel dosyalarını okumak ve değiştirmek için basit ve kullanışlı bir yol sunar. Daha gelişmiş özellikler ve işlevsellik için IronXL belgelendirmesini keşfedebilirsiniz.
IronXL, ücretsiz deneme sunarak yeteneklerini değerlendirmenizi sağlar. Projeleriniz için faydalı bulursanız, $999'dan başlayan bir lisans satın alabilirsiniz.
Sıkça Sorulan Sorular
Bir ASP.NET Core uygulamasında Excel dosyasını nasıl açabilirim?
Bir ASP.NET Core uygulamasında IronXL kütüphanesini kullanarak bir Excel dosyasını açabilirsiniz. İlk olarak, IronXL paketini NuGet aracılığıyla yükleyin, ardından WorkBook.Load ile Excel dosyanızı yükleyin. Verilere, hesap sayfasını seçerek ve satır ve sütunlar üzerinde yineleme yaparak erişebilirsiniz.
IronXL’i, Excel manipülasyonu için Office Interop’a tercih etmenin faydaları nelerdir?
IronXL, Microsoft Excel veya Office Interop bağımlılıklarına ihtiyaç duymadan Excel dosyalarıyla çalışmanıza olanak tanır, Microsoft Office'in yüklenmesinin mümkün olmadığı sunucu ortamları için idealdir. Hem .NET Framework hem de .NET Core desteği sunar ve hem .XLS hem de .XLSX formatlarını ele alır.
Excel verilerini bir web uygulamasında Razor Pages kullanarak nasıl görüntülerim?
Excel verilerini bir web uygulamasında görüntülemek için, IronXL kullanarak Excel verilerini yükleyen ve okuyan bir Razor Sayfası oluşturabilirsiniz. Her hücre verisini metin giriş alanlarına işlemek için bir HTML formu kullanarak kullanıcıların verileri web arayüzünde görüntülemelerini ve düzenlemelerini sağlayın.
Excel işlemleri için bir ASP.NET Core projesi kurmak için gerekenler nelerdir?
Excel işlemleri için bir ASP.NET Core projesi kurmak için, .NET Core 3.1 veya daha yüksek bir sürüme, bir IDE’ye (örneğin Microsoft Visual Studio) ve ASP.NET Core ve Razor Pages hakkında temel bir anlayışa ihtiyacınız vardır. IronXL paketini NuGet’ten yükleyerek Excel dosyaları ile çalışmaya başlayabilirsiniz.
ASP.NET Core’da bir Excel dosyasını nasıl düzenler ve değişiklikleri kaydederim?
Bir Razor Sayfasındaki bir HTML formu aracılığıyla kullanıcıların veriyi değiştirmesine izin vererek bir Excel dosyasını düzenleyebilir ve değişiklikleri kaydedebilirsiniz. Veriyi güncellemek için sheet.SetCellValue ve değiştirilmiş Excel dosyasını kaydetmek için workbook.SaveAs gibi IronXL yöntemlerini kullanın.
Bir Excel dosya işlemleri için Razor Sayfası kurulumunda hangi adımlar yer alır?
Razor Sayfası kurmak, ASP.NET Core projenizde yeni bir Razor Sayfası oluşturmayı içerir. Razor Sayfası'nı IronXL ile Excel verilerini yüklemek, bir web formunda görüntülemek ve form gönderimlerini işleyerek değişiklikleri tekrar Excel dosyasına kaydetmek için kullanın.
ASP.NET Core’da Excel dosyam yüklenmezse nasıl sorun gideririm?
Excel dosyanız yüklenmezse, dosya yolunun doğru ve uygulama tarafından erişilebilir olduğundan emin olun. IronXL’in doğru yüklendiğini ve dosya formatının desteklendiğini doğrulayın. Sorunun ne olduğunu belirtebilecek herhangi bir istisna veya hata mesajını kontrol edin.
IronXL kütüphanesini satın almadan önce deneyebilir miyim?
Evet, IronXL, yeteneklerini değerlendirmenize olanak tanıyan ücretsiz bir deneme sürümü sunar. Bu deneme sürümünü kullanarak ihtiyaçlarınızı karşıladığından emin olun, ardından bir lisans satın almaya karar verin.




