Read Excel Files in ASP.NET MVC Using C# with IronXL
IronXL, ASP.NET MVC geliştiricilerinin Microsoft Office bağımlılığı olmadan Excel dosyalarını doğrudan C# ile okumalarını sağlar, Excel verilerini web görünümlerinde kolayca göstermek için System.Data.DataTable'ya dönüştürür, bunu yalnızca birkaç satır kod ile yapar.
Hızlı Başlangıç: Excel Sayfasını MVC'de Veri Tablosuna Yükleme ve Dönüştürme
Bu örnek, saniyeler içinde nasıl başlayacağınızı gösterir: bir Excel çalışma kitabını yükleyin, ilk çalışma sayfasını seçin ve IronXL kullanarak System.Data.DataTable'ya dönüştürün - Interop yok, zorluk yok.
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronXl.Excel yükleyin
PM > Install-Package IronXl.Excel -
Bu kod parçasını kopyalayıp çalıştırın.
var dataTable = IronXl.WorkBook.Load("CustomerData.xlsx").DefaultWorkSheet.ToDataTable(true); -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronXL kullanmaya başlayın ücretsiz deneme ile
Minimal İş Akışı (5 adımda)
- ASP.NET'te Excel dosyasını okumak için C# kütüphanesi yükleyin
- Excel dosyamızdaki hedef sayfayı yükleyin ve erişin
ToDataTableyöntemine erişin veView'e geri döndürün- Web sayfasında Excel verilerini döngü kullanarak görüntüleyin
- Tüm veriler arasında dolaşın ve bir HTML tablosu oluşturun
Excel Okuma İçin Nasıl Bir ASP.NET Projesi Oluşturabilirim?
Neden Visual Studio 2022 Bu İş İçin En İyi?
Visual Studio 2022 kullanarak yeni bir ASP.NET projesi oluşturun. Visual Studio 2022, .NET 6+ çerçeveleri için mükemmel destek, IronXL metodları için geliştirilmiş IntelliSense ve büyük Excel dosyaları ile çalışırken daha iyi performans sunar. IDE'nin NuGet entegrasyonu IronXL'yi kurmayı oldukça basit hale getirir.
Hangi Proje Şablonunu Seçmeliyim?
ASP.NET içinde Excel dosyalarını 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 modeli IronXL'nun DataTable dönüşümü ile mükemmel çalışır, elektronik tabloları kontrol birimlerinde yüklemenize ve görünümlerde sorunsuz bir şekilde göstermenize olanak tanır.
Hangi .NET Sürümü Öneriliyor?
IronXL, .NET Framework 4.6.2+ ve .NET Core 3.1+ ile çalışır. Yeni ASP.NET MVC projeleri için, optimal performans ve güvenlik için .NET 6.0 veya daha yüksek sürümleri kullanın. Bu sürümler, büyük Excel dosyalarını işlerken iyileştirilmiş bellek yönetimi ve elektronik 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?
Yükleme Gereksinimleri Nelerdir?
En Hızlı Yükleme Yöntemi Hangisidir?
Yeni projeyi oluşturduktan sonra IronXL kütüphanesini yükleyin. IronXL'yi yüklemek için bu adımları izleyin. NuGet Paket Yöneticisi Konsolunu açın ve şu komutu çalıştırın:
Install-Package IronXl.Excel
Yüklemeyi Nasıl Doğrulayabilirim?
IronXL'nin doğru yüklendiğini doğrulamak için, proje bağımlılığınızı Solution Explorer'da kontrol edin. "IronXL", "Dependencies > Packages" altında listelenmiş olmalıdır. Ayrıca, kontrol birimi dosyanızın en üstüne using IronXL; eklemeyi deneyin - IntelliSense namespace'i hemen tanıyacaktır. Kurulum sorunları için lisans kılavuzunu ziyaret edin.
Excel Dosyasını Denetleyicimde Nasıl Okuyabilirim?
Denetleyici İşlemine Hangi Kod Eklenmeli?
ASP.NET projenizdeki varsayılan kontrol birimini (örneğin, HomeController.cs) açın ve Index metodunu aşağıdaki kod ile 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 Formatlar Yerine DataTable Kullanılır?
Index aksiyon metodunda, IronXL'nun Load metodu kullanarak Excel dosyasını yükleyin. Excel dosyasının yolu (dosya adı dahil) yöntem çağrısına bir parametre olarak verilir. Daha sonra, çalışma sayfası olarak ilk Excel sayfasını seçin ve içindeki verileri bir DataTable nesnesine yükleyin. Son olarak, DataTable'yi arayüze gönderin.
DataTable, Razor görünümleri ile sorunsuz bir şekilde entegre olduğu ve satırlar ve sütunlar boyunca geçiş yapmak için yerel destek sağladığı için ASP.NET MVC için idealdir. Özel nesnelerin aksine, DataTable model eşleme gerektirmez ve karışık veri türlerini otomatik olarak işler. Gerektiğinde DataSet ve DataTable'u tekrar Excel'e aktarabilirsiniz.
Eksik Dosyalar İçin Hata İşleme Nedir?
Sağlam hata işleme, Excel dosyaları eksik olduğunda veya bozulduğunda uygulamanızın çökmesini engeller. İşte uygun istisna işleme ile geliştirilmiş bir sürüm:
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ı Nasıl Seçilir?
IronXL belirli çalışma sayfalarını seçme ve çalışma için birden fazla yöntem sağlar. Çalışma sayfalarına indeks, ad veya mevcut tüm sayfalar arasında dolaşarak erişebilirsiniz:
// 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?
Bir sonraki örnek, önceki örnekte iade edilen DataTable'ı bir web tarayıcısında nasıl göstereceğinizi gösterir.
Bu örnekte kullanılan çalışma Excel dosyası aşağıda gösterilmiştir:
Excel dosyası
index.cshtml (index view)'ü açın ve kodu aşağıdaki HTML kodu ile 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 Stil Vermede Neden Bootstrap Kullanılır?
Yukarıdaki kod, model olarak Index metodundan iade edilen DataTable'ı kullanır. Tablodaki her satır, Bootstrap şekillendirmesiyle süsleme için dahil olmak üzere bir @for döngüsü kullanılarak web sayfasına yazdırılır.
Bootstrap, farklı ekran boyutlarına otomatik olarak uyum sağlayan duyarlı tablo tasarımları sağlar - modern web uygulamaları için önemli bir özelliktir. table-dark sınıfı, okunması kolay çekici bir koyu temalı tablo oluşturur. Hücre kenarları ve hizalama veya arka plan desenleri ve renkleri gibi daha gelişmiş Excel biçimlendirmesi için IronXL doğrudan yapılandırılmış verilere erişmek için ek metodlar sunar.
Son Çıktı Nasıl Görünür?
Projeyi çalıştırmak aşağıda gösterilen sonuçları üretir:
Bootstrap Tablosu
Tabloya Başlıklar Nasıl Eklenir?
Excel dosyanızdan sütun başlıklarını göstermek için görünüm kodunu tablo başlık bölümünü ekleyecek şekilde değiştirin. ToDataTable(true) cagirildiginda, IronXL otomatik olarak ilk satiri sutun adlari olarak kullanir:
@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ızdan "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 doğrudan yapılandırılmış verilere erişmek için ek metodlar sunar.
Sıkça Sorulan Sorular
ASP.NET MVC'de Microsoft Office olmadan Excel dosyalarını nasıl okurum?
IronXL, Excel dosyalarını doğrudan C# içinde herhangi bir Microsoft Office bağımlılığı olmadan okumanızı sağlar. Sadece NuGet aracılığıyla IronXL'i yükleyin, ardından WorkBook.Load() kullanarak Excel dosyanızı açın ve yalnızca bir kod satırıyla bir DataTable'a dönüştürü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ı anında System.Data.DataTable nesnelerine dönüştüren ToDataTable() yöntemini sağlar. Excel kitabınızı IronXL ile yükledikten sonra herhangi bir çalışma sayfasına erişin ve başlıkları dahil etmek için ToDataTable(true) çağırın. Bu dönüşüm sadece bir kod satırı gerektirir ve ASP.NET MVC görünümleriyle sorunsuz çalışır.
Web uygulamalarında Excel dosyalarının işlenmesi için hangi .NET sürümünü kullanmalıyım?
IronXL, .NET Framework 4.6.2+ ve .NET Core 3.1+ destekler. Yeni ASP.NET MVC projeleri için .NET 6.0 veya üstü önerilir, çünkü bu, IronXL ile büyük Excel dosyalarını işlerken geliştirilmiş bellek yönetimi ve çalışma sayfası işlemleri için daha iyi async/await desteği sunar.
Excel okuma işlevselliği için en iyi Visual Studio proje şablonu nedir?
Projenizi oluştururken 'ASP.NET Core Web Uygulaması (Model-View-Controller)' şablonunu seçin. Bu MVC yapısı, IronXL'nin DataTable dönüşüm özelliğini mükemmel bir şekilde tamamlar, Excel dosyalarını denetleyicilerde yüklemenize ve işlemenize olanak tanırken verileri görünümlerde temiz bir şekilde görüntülemenizi sağlar.
ASP.NET projemde Excel okuma kütüphanesini nasıl yüklerim?
NuGet Paket Yöneticisi Konsolu aracılığıyla IronXL'i 'Install-Package IronXl.Excel' komutunu çalıştırarak yükleyin. Yükleme tamamlandıktan sonra, proje bağımlılıklarınızı kontrol ederek ve 'using IronXL;' ifadesini denetleyicinize ekleyerek doğru şekilde yüklendiğini doğrulayın - IntelliSense hemen ad alanını tanımalıdır.

