Excel Dosyalarını ASP.NET MVC'de C# ile IronXL Kullanarak Okuma

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL, ASP.NET MVC geliştiricilerinin Microsoft Office bağımlılığı olmadan doğrudan C# içinde Excel dosyalarını okumasına olanak tanır, Excel verilerini az kodla web görünümlerinde kolay görüntüleme için System.Data.DataTable'ye 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 nasıl hızlıca başlayacağınızı gösterir: bir Excel çalışma kitabı 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.

  1. IronXL aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronXL.Excel
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    var dataTable = IronXL.WorkBook.Load("CustomerData.xlsx").DefaultWorkSheet.ToDataTable(true);
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronXL kullanmaya başlayın

    arrow pointer

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, büyük Excel dosyalarıyla çalışırken geliştirilmiş IntelliSense ve daha iyi performans ile .NET 6+ çerçeveleri için mükemmel destek sağlar. IDE'nin NuGet entegrasyonu, IronXL kurulumunu özellikle basit 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 deseni, kontrolcülerde hesap tablolarını yüklemenize ve görünümlerde kusursuz bir şekilde görüntülemenize olanak tanıyan IronXL'nin DataTable dönüşümü ile mükemmel çalışı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 kurun. IronXL yüklemek için bu 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 yüklendiğini doğrulamak için Çözüm Gezgini'nde projenizin bağımlılıklarını kontrol edin. "Bağımlılıklar > Paketler" altında "IronXL" listelendiğini görmelisiniz. Ek olarak, kontrol dosyanızın üstüne using IronXL; eklemeyi deneyin - IntelliSense anında ad alanını 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 kontrolcüyü açın (ör. HomeController.cs) ve Index metodunu 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
$vbLabelText   $csharpLabel

DataTable'yi Diğer Formatlara Tercih Etmenin Nedenleri?

Index eylem metodunda, Excel dosyasını IronXL'nin Load metodu ile yükleyin. Excel dosyasının yolu (dosya adı dahil) yöntem çağrısına bir parametre olarak sağlanır. Sonra, ilk Excel sayfasını çalışma sayfası olarak seçin ve içindeki verileri bir DataTable nesnesine yükleyin. Son olarak, DataTable'yi ön tarafa gönderin.

DataTable, Razor görünümleri ile kusursuz bir şekilde entegre olduğu ve satır ve sütunlarda yinelemeyi kolayca desteklediği için ASP.NET MVC için idealdir. Özel nesnelerin aksine, DataTable model eşlemesine ihtiyaç duymaz ve karışık veri türlerini otomatik olarak işler. Gerektiğinde Excel'e geri DataSet ve DataTable ihraç edebilirsiniz.

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
$vbLabelText   $csharpLabel

Farklı Çalışma Sayfalarını Nasıl Seçebilirim?

IronXL, belirli çalışma sayfalarını seçmek ve ç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:

:path=/static-assets/excel/content-code-examples/how-to/asp-net-mvc-read-excel-file-5.cs
// 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
}
Imports System

' 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
$vbLabelText   $csharpLabel

Excel Verilerini Bir Web Sayfasında Nasıl Görüntülerim?

Hangi Görünüm Kodu Gereklidir?

Bir sonraki örnek, önceki örnekte getirilen DataTable'yi bir web tarayıcısında nasıl görüntüleyeceğinizi gösterir.

Aşağıda bu örnekte kullanılan çalışma Excel dosyası gösterilmektedir:

Müşteri adları, nakliye maliyetleri ve birim fiyatları içeren Excel elektronik tablosu - web görüntüleme eğitimi için örnek veri

Excel dosyası

index.cshtml (indeks görünümü) 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>
}

Tablo Stilini Şekillendirmek İçin Neden Bootstrap Kullanmalısınız?

Yukarıdaki kod, Index metodundan döndürülen DataTable'yi model olarak kullanır. Tablodaki her bir satır, süsleme için Bootstrap formatı dahil olmak üzere bir @for döngüsü kullanılarak web sayfasına yazdırılır.

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 tema tablosu oluşturur. Daha ileri düzey Excel formatlaması için hücre kenarlıkları ve hizalama veya arka plan desenleri ve renkleri gibi IronXL, doğrudan yapılandırılmış verilere erişmek için ek metodlar sağlar.

Nihai Çıktı Neye Benziyor?

Projeyi çalıştırmak aşağıda gösterilen sonuçları üretir:

ASP.NET MVC uygulamasında adları, nakliye maliyetlerini ve birim fiyatlarını içeren Excel müşteri verilerini gösteren Bootstrap tablosu

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 ilk satırı otomatik olarak sütun isimleri 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>
}
$vbLabelText   $csharpLabel

Bu gelişme, Excel dosyanızdan "Müşteri Adı", "Nakliye Maliyeti" ve "Birim Fiyat" gibi düzgün 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 sağlar.

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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 2,150,290 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronXL.Excel
örnek çalıştır verinizin bir hesap tablosu haline geldiğini izleyin.