Excel Dosyalarını ASP.NET MVC'de C# ile IronXL Kullanarak Okuma
IronXL, ASP.NET MVC geliştiricilerinin Microsoft Office bağımlılıkları olmadan Excel dosyalarını doğrudan C#'da okumasına olanak tanır ve Excel verilerini sadece birkaç satır kodla web görünümlerinde kolayca görüntülenebilmesi için System.Data.DataTable formatına dönüştürür.
Hızlı Başlangıç: Excel Sayfasını MVC'de DataTable'a Yükleyip Dönüştürün
Bu örnek, saniyeler içinde nasıl başlayabileceğinizi gösterir: bir Excel çalışma kitabını yükleyin, ilk çalışma sayfasını seçin ve IronXL kullanarak System.Data.DataTable'ye dönüştürün — Interop yok, zahmet yok.
-
IronXL aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronXL.Excel -
Bu kod parçacığını kopyalayın ve çalıştırın.
var dataTable = IronXl.WorkBook.Load("CustomerData.xlsx").DefaultWorkSheet.ToDataTable(true); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronXL kullanmaya başlayın
Asgari İş Akışı (5 adım)
- ASP.NET'te Excel dosyası okumak için C# kütüphanesi yükleyin
- Excel dosyasındaki hedef sayfayı yükleyin ve erişin
ToDataTableyöntemine erişin veView'a geri döndürün- Excel verilerini bir döngü kullanarak bir web sayfasında görüntüleme
- Tüm verileri tekrarlayıp bir HTML tablosu oluşturun
Excel Okuma için ASP.NET Projesi Nasıl Oluşturulurum?
Bu İçin Neden Visual Studio 2022 En İyi Çalışır?
Visual Studio 2022 kullanarak yeni bir ASP.NET projesi oluşturun. Visual Studio 2022, .NET Framework 6+ çerçeveleri için mükemmel destek, IronXL yöntemleri için geliştirilmiş IntelliSense ve büyük Excel dosyalarıyla çalışırken daha iyi performans sunar. IDE'nin NuGet entegrasyonu, IronXL kurulumunu özellikle kolay hale getirir.
Hangi Proje Şablonunu Seçmeliyim?
Excel dosyalarını ASP.NET içinde okumak için "ASP.NET Core Web App (Model-View-Controller)" şablonunu seçin. Bu şablon, veri işleme (Excel okuma) ile sunum mantığını ayıran temiz bir MVC yapısı sağlar. MVC kalıbı, IronXL'nin DataTable dönüşümüyle mükemmel bir şekilde çalışır ve denetleyicilere elektronik tabloları yüklemenize ve bunları görünümlerde sorunsuz bir şekilde görüntülemenize olanak tanır.
Hangi .NET Sürümü Tavsiye Ediliyor?
IronXL, .NET Framework 4.6.2+ ve .NET Core 3.1+ ile çalışır. Yeni ASP.NET MVC projeleri için, en iyi performans ve güvenlik için .NET 6.0 veya üzerini kullanın. Bu sürümler, büyük Excel dosyalarını işlerken gelişmiş hafıza yönetimi ve tablo dosya türlerini dönüştürmek için daha iyi async/await desteği sunar.
IronXL Kütüphanesini Nasıl Yüklerim?
Kurulum Gereksinimleri Nelerdir?
Hangi Kurulum Yöntemi En Hızlı?
Yeni projeyi oluşturduktan sonra, IronXL kütüphanesini yükleyin. IronXL'yi yüklemek için şu adımları izleyin. NuGet Paket Yöneticisi Konsolunu açın ve aşağıdaki komutu çalıştırın:
Install-Package IronXL.Excel
Kurulumu Nasıl Doğrulayabilirim?
IronXL'nin doğru şekilde yüklendiğini doğrulamak için, Solution Explorer'da projenizin bağımlılıklarını kontrol edin. "Bağımlılıklar > Paketler" altında "IronXL" listelendiğini görmelisiniz. Ayrıca, denetleyici dosyanızın en üstüne using IronXL; eklemeyi deneyin; IntelliSense, ad alanını hemen tanımalıdır. Kurulum sorunlarını gidermek için lisanslama kılavuzunu ziyaret edin.
Kontrolcümde Bir Excel Dosyasını Nasıl Okurum?
Kontrolcü Eylemi İçin Hangi Kod Gerekli?
ASP.NET projenizdeki varsayılan denetleyiciyi açın (ör. HomeController.cs) ve Index yöntemini aşağıdaki kodla değiştirin:
using IronXL;
using System.Data;
public ActionResult Index()
{
// Load the Excel workbook from a specified path.
WorkBook workBook = WorkBook.Load(@"C:\Files\Customer Data.xlsx");
// Access the first worksheet from the workbook.
WorkSheet workSheet = workBook.WorkSheets.First();
// Convert the worksheet data to a DataTable object.
// The 'true' parameter uses the first row as column headers
var dataTable = workSheet.ToDataTable(true);
// Send the DataTable to the view for rendering.
return View(dataTable);
}
using IronXL;
using System.Data;
public ActionResult Index()
{
// Load the Excel workbook from a specified path.
WorkBook workBook = WorkBook.Load(@"C:\Files\Customer Data.xlsx");
// Access the first worksheet from the workbook.
WorkSheet workSheet = workBook.WorkSheets.First();
// Convert the worksheet data to a DataTable object.
// The 'true' parameter uses the first row as column headers
var dataTable = workSheet.ToDataTable(true);
// Send the DataTable to the view for rendering.
return View(dataTable);
}
Imports IronXL
Imports System.Data
Public Function Index() As ActionResult
' Load the Excel workbook from a specified path.
Dim workBook As WorkBook = WorkBook.Load("C:\Files\Customer Data.xlsx")
' Access the first worksheet from the workbook.
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
' Convert the worksheet data to a DataTable object.
' The 'true' parameter uses the first row as column headers
Dim dataTable = workSheet.ToDataTable(True)
' Send the DataTable to the view for rendering.
Return View(dataTable)
End Function
Neden Diğer Biçimler Yerine DataTable Kullanılmalı?
Index eylem yönteminde, IronXL'nin Load yöntemini kullanarak Excel dosyasını yükleyin. Excel dosyasının yolu (dosya adı dahil) yöntem çağrısına bir parametre olarak sağlanır. Ardından, ilk Excel sayfasını çalışma sayfası olarak seçin ve içindeki verileri bir DataTable nesnesine yükleyin. Son olarak, DataTable'yi ön uca gönderin.
DataTable, Razor görünümleriyle sorunsuz bir şekilde entegre olduğu ve satır ve sütunlar arasında yineleme için yerleşik destek sağladığı için ASP.NET MVC için idealdir. Özel nesnelerden farklı olarak, DataTable model eşlemesi gerektirmez ve karışık veri türlerini otomatik olarak işler. Ayrıca, gerektiğinde DataSet ve DataTable öğelerini Excel'e geri aktarabilirsiniz.
Eksik Dosyalar İçin Hata Yönetimi Ne Olacak?
Güçlü hata yönetimi, Excel dosyaları eksik veya bozuk olduğunda uygulamanızın çökmesini önler. Aşağıda uygun istisna yönetimi ile geliştirilmiş bir versiyon bulunmaktadır:
public ActionResult Index()
{
try
{
string filePath = @"C:\Files\Customer Data.xlsx";
// Check if file exists before attempting to load
if (!System.IO.File.Exists(filePath))
{
ViewBag.Error = "Excel file not found at specified location.";
return View(new DataTable());
}
// Load workbook with error handling
WorkBook workBook = WorkBook.Load(filePath);
// Verify worksheet exists
if (workBook.WorkSheets.Count == 0)
{
ViewBag.Error = "No worksheets found in the Excel file.";
return View(new DataTable());
}
WorkSheet workSheet = workBook.WorkSheets.First();
var dataTable = workSheet.ToDataTable(true);
return View(dataTable);
}
catch (Exception ex)
{
// Log the exception (consider using a logging framework)
ViewBag.Error = $"Error reading Excel file: {ex.Message}";
return View(new DataTable());
}
}
public ActionResult Index()
{
try
{
string filePath = @"C:\Files\Customer Data.xlsx";
// Check if file exists before attempting to load
if (!System.IO.File.Exists(filePath))
{
ViewBag.Error = "Excel file not found at specified location.";
return View(new DataTable());
}
// Load workbook with error handling
WorkBook workBook = WorkBook.Load(filePath);
// Verify worksheet exists
if (workBook.WorkSheets.Count == 0)
{
ViewBag.Error = "No worksheets found in the Excel file.";
return View(new DataTable());
}
WorkSheet workSheet = workBook.WorkSheets.First();
var dataTable = workSheet.ToDataTable(true);
return View(dataTable);
}
catch (Exception ex)
{
// Log the exception (consider using a logging framework)
ViewBag.Error = $"Error reading Excel file: {ex.Message}";
return View(new DataTable());
}
}
Imports System.IO
Imports System.Data
Public Function Index() As ActionResult
Try
Dim filePath As String = "C:\Files\Customer Data.xlsx"
' Check if file exists before attempting to load
If Not File.Exists(filePath) Then
ViewBag.Error = "Excel file not found at specified location."
Return View(New DataTable())
End If
' Load workbook with error handling
Dim workBook As WorkBook = WorkBook.Load(filePath)
' Verify worksheet exists
If workBook.WorkSheets.Count = 0 Then
ViewBag.Error = "No worksheets found in the Excel file."
Return View(New DataTable())
End If
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim dataTable = workSheet.ToDataTable(True)
Return View(dataTable)
Catch ex As Exception
' Log the exception (consider using a logging framework)
ViewBag.Error = $"Error reading Excel file: {ex.Message}"
Return View(New DataTable())
End Try
End Function
Farklı Çalışma Sayfalarını Nasıl Seçebilirim?
IronXL, belirli çalışma sayfalarını seçmek ve bunlarla çalışmak için çeşitli yollar sunar. Çalışma sayfalarına dizin, ad ile erişebilir veya mevcut tüm sayfalar arasında dolaşabilirsiniz:
// Method 1: Select by worksheet name
WorkSheet namedSheet = workBook.GetWorkSheet("Sales Data");
// Method 2: Select by index (zero-based)
WorkSheet secondSheet = workBook.WorkSheets[1];
// Method 3: Select the default/active worksheet
WorkSheet defaultSheet = workBook.DefaultWorkSheet;
// Method 4: Iterate through all worksheets
foreach (WorkSheet sheet in workBook.WorkSheets)
{
string sheetName = sheet.Name;
// Process each worksheet
}
// Method 1: Select by worksheet name
WorkSheet namedSheet = workBook.GetWorkSheet("Sales Data");
// Method 2: Select by index (zero-based)
WorkSheet secondSheet = workBook.WorkSheets[1];
// Method 3: Select the default/active worksheet
WorkSheet defaultSheet = workBook.DefaultWorkSheet;
// Method 4: Iterate through all worksheets
foreach (WorkSheet sheet in workBook.WorkSheets)
{
string sheetName = sheet.Name;
// Process each worksheet
}
' Method 1: Select by worksheet name
Dim namedSheet As WorkSheet = workBook.GetWorkSheet("Sales Data")
' Method 2: Select by index (zero-based)
Dim secondSheet As WorkSheet = workBook.WorkSheets(1)
' Method 3: Select the default/active worksheet
Dim defaultSheet As WorkSheet = workBook.DefaultWorkSheet
' Method 4: Iterate through all worksheets
For Each sheet As WorkSheet In workBook.WorkSheets
Dim sheetName As String = sheet.Name
' Process each worksheet
Next
Excel Verilerini Bir Web Sayfasında Nasıl Görüntülerim?
Hangi Görünüm Kodu Gereklidir?
Aşağıdaki örnek, önceki örnekte döndürülen DataTable'nin bir web tarayıcısında nasıl görüntüleneceğini göstermektedir.
Aşağıda bu örnekte kullanılan çalışma Excel dosyası gösterilmektedir:
Excel dosyası
index.cshtml (dizin görünümü) dosyasını açın ve kodu aşağıdaki HTML koduyla değiştirin:
@{
ViewData["Title"] = "Home Page";
}
@using System.Data
@model DataTable
<div class="text-center">
<h1 class="display-4">Welcome to IronXL Read Excel MVC</h1>
</div>
@* Check for errors first *@
@if (ViewBag.Error != null)
{
<div class="alert alert-danger">
@ViewBag.Error
</div>
}
@* Display table only if data exists *@
@if (Model != null && Model.Rows.Count > 0)
{
<table class="table table-dark">
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@for (int i = 0; i < Model.Columns.Count; i++)
{
<td>@row[i]</td>
}
</tr>
}
</tbody>
</table>
}
else
{
<p>No data to display.</p>
}
@{
ViewData["Title"] = "Home Page";
}
@using System.Data
@model DataTable
<div class="text-center">
<h1 class="display-4">Welcome to IronXL Read Excel MVC</h1>
</div>
@* Check for errors first *@
@if (ViewBag.Error != null)
{
<div class="alert alert-danger">
@ViewBag.Error
</div>
}
@* Display table only if data exists *@
@if (Model != null && Model.Rows.Count > 0)
{
<table class="table table-dark">
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@for (int i = 0; i < Model.Columns.Count; i++)
{
<td>@row[i]</td>
}
</tr>
}
</tbody>
</table>
}
else
{
<p>No data to display.</p>
}
Tablo Stilini Şekillendirmek İçin Neden Bootstrap Kullanmalısınız?
Yukarıdaki kod, Index yönteminden döndürülen DataTable değerini model olarak kullanır. Tablodaki her satır, süsleme için Bootstrap biçimlendirmesi de dahil olmak üzere @for döngüsü kullanılarak web sayfasına PRINT edilir.
Bootstrap, modern web uygulamaları için hayati önem taşıyan ve farklı ekran boyutlarına otomatik olarak uyum sağlayan duyarlı tablo tasarımları sunar. table-dark sınıfı, okunması kolay, çekici bir koyu temalı tablo oluşturur. Hücre kenarlıkları ve hizalama veya arka plan desenleri ve renkleri gibi daha gelişmiş Excel biçimlendirme işlemleri için, IronXL yapılandırılmış verilere doğrudan erişmek için ek yöntemler sunar.
Nihai Çıktı Neye Benziyor?
Projeyi çalıştırmak aşağıda gösterilen sonuçları üretir:
Bootstrap Tablosu
Tabloya Başlıkları Nasıl Ekleyebilirim?
Excel dosyanızdan sütun başlıklarını görüntülemek için, görünüm kodunu bir tablo başlık bölümü ekleyecek şekilde değiştirin. ToDataTable(true) çağrıldığında, IronXL otomatik olarak ilk satırı sütun adları olarak kullanır:
@if (Model != null && Model.Rows.Count > 0)
{
<table class="table table-dark">
<thead>
<tr>
@foreach (DataColumn column in Model.Columns)
{
<th>@column.ColumnName</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@for (int i = 0; i < Model.Columns.Count; i++)
{
<td>@row[i]</td>
}
</tr>
}
</tbody>
</table>
}
@if (Model != null && Model.Rows.Count > 0)
{
<table class="table table-dark">
<thead>
<tr>
@foreach (DataColumn column in Model.Columns)
{
<th>@column.ColumnName</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@for (int i = 0; i < Model.Columns.Count; i++)
{
<td>@row[i]</td>
}
</tr>
}
</tbody>
</table>
}
Bu geliştirme, Excel dosyanızdaki "Müşteri Adı", "Nakliye Ücreti" ve "Birim Fiyat" gibi uygun sütun başlıklarını görüntüler. Adlandırılmış aralıklar veya adlandırılmış tablolar içeren daha karmaşık senaryolar için, IronXL yapılandırılmış verilere doğrudan erişmek için ek yöntemler sunar.
Sıkça Sorulan Sorular
Microsoft Office olmadan ASP.NET MVC'de Excel dosyalarını nasıl okurum?
IronXL, herhangi bir Microsoft Office bağımlılığı olmadan doğrudan C# dilinde Excel dosyalarını okumanıza olanak tanır. Sadece IronXL'yi NuGet üzerinden yükleyin, ardından Excel dosyanızı açmak ve tek satırlık bir kodla bir DataTable'a dönüştürmek için WorkBook.Load() kullanın: var dataTable = IronXl.WorkBook.Load('CustomerData.xlsx').DefaultWorkSheet.ToDataTable(true);
ASP.NET'te Excel verilerini DataTable'a dönüştürmenin en hızlı yolu nedir?
IronXL, Excel çalışma sayfalarını System.Data.DataTable nesnelerine anında dönüştüren ToDataTable() yöntemini sağlar. IronXL ile çalışma kitabınızı yükledikten sonra herhangi bir çalışma sayfasına erişin ve başlıkları eklemek için ToDataTable(true) çağırın. Bu dönüşüm sadece bir satır kodla yapılır ve ASP.NET MVC görünümleri ile sorunsuz çalışır.
Web uygulamalarında Excel dosya işleme için hangi .NET sürümünü kullanmalıyım?
IronXL, .NET Framework 4.6.2+ ve .NET Core 3.1+ sürümlerini destekler. Yeni ASP.NET MVC projeleri için .NET 6.0 veya üstü önerilir, çünkü IronXL ile büyük Excel dosyalarını işlerken daha iyi bellek yönetimi ve elektronik tablo işlemleri için daha iyi async/await desteği sunar.
Excel okuma işlevselliği için hangi Visual Studio proje şablonu en iyi şekilde çalışır?
Projenizi oluştururken 'ASP.NET Core Web App (Model-View-Controller)' şablonunu seçin. Bu MVC yapısı, IronXL'nin DataTable dönüştürme özelliğiyle mükemmel uyum sağlar ve Excel dosyalarını kontrolcülerde yüklerken verileri temiz bir şekilde görünümlerde göstermenize olanak tanır.
ASP.NET projemde Excel okuma kütüphanesini nasıl yüklerim?
NuGet Paket Yöneticisi Konsolu aracılığıyla 'Install-Package IronXL.Excel' komutunu çalıştırarak IronXL'yi yükleyin. Kurulumdan sonra, doğru şekilde eklendiğini kontrol etmek için proje bağımlılıklarınıza göz atın ve 'using IronXL;' ifadesini kontrolcüye ekleyin - IntelliSense'in isim alanını hemen tanıması gerekir.

