IRONSOFTWAREHOME
IRONXL KULLANARAK

ASP.NET C# ile GridView'e Excel Nasıl İçe Aktarılır

Curtis Chau
Curtis Chau
Updated: 28 Haziran 2026

ASP.NET C# içinde bir GridView'da Excel verilerini içe aktarmak, IronXL ile basittir. Bir çalışma kitabı yüklersiniz, bir çalışma sayfasını DataTable'a dönüştürürsünüz ve onu GridView kontrolünüze bağlarsınız -- bunların hepsi OLEDB sürücüleri veya karmaşık bağlantı dizileri olmadan.

Kendiniz deneyin: Aşağıdaki kod örneklerini takip etmek için IronXL'un ücretsiz deneme sürümünü alın.

Excel GridView Entegrasyonu İçin IronXL Nasıl Kurulur?

Herhangi bir kod yazmadan önce, IronXL'u ASP.NET projenize eklemeniz gerekir. En hızlı yol, Visual Studio Paket Yöneticisi Konsolu veya .NET CLI'dan NuGet ile olur.

PM > Install-Package IronXL.Excel

Kurulum tamamlandığında, NuGet gerekli tüm referansları projenize ekler. Yüklenecek harici sürücüler, kaydedilecek OLEDB sağlayıcılar ve sunucu üzerindeki Microsoft Office bağımlılığı yok. Kütüphane, Windows, Linux, macOS ve Azure App Service gibi bulut barındırma ortamlarında çalışan tek bir yönetilen montaj olarak gönderilir.

Kurulumdan sonra, Excel verilerini okuyan veya yazan herhangi bir kod-arkası dosyasına aşağıdaki ad alanlarını ekleyin:

using IronXL;
using System.Data;
using System.IO;

IronXL, hem .xls (Excel 97-2003) hem de .xlsx (Excel 2007+) formatlarını destekler, bu nedenle her dosya tipi için ayrı bir işlem yapmanıza gerek yoktur. Aynı WorkBook.Load çağrısı, dosya imzasını otomatik olarak inceleyerek her iki formatı da işler.

GridView Veri Bağlaması İçin Neden OLEDB Atlarsınız?

Geleneksel OLEDB tabanlı Excel ithalatları, doğru bitlikte (32-bit ve 64-bit arasında) sunucuya kurulması gereken Microsoft Access Veritabanı Motorunu (ACE veya JET) gerektirir. Farklı sunucu ortamlarında dağıtım genellikle sürücü eksikliği veya uyumsuzluğu nedeniyle başarısız olur ve Microsoft artık Windows ile birlikte 64-bit ACE sürücüsünü varsayılan olarak göndermez.

IronXL bu bağımlılığı tamamen ortadan kaldırır. Açık XML veya BIFF formatını yönetilen kodda doğrudan okur. Geliştirme, kademelendirme ve üretimde sürücü sürümü kaygıları olmadan öngörülebilir davranış elde edersiniz.

IronXL Hangi .NET Platformlarını Hedefliyor?

IronXL, .NET 10, .NET 8, .NET Standard 2.0 ve .NET Framework 4.6.2+'yı hedefliyor. Bu kapsama, ASP.NET uygulamanız klasik Web Formlarında, ASP.NET MVC'de veya modern ASP.NET Core Razor Sayfalarında çalışsa da Excel işleme katmanında herhangi bir kod değişikliği olmadan aynı kütüphaneyi kullanabileceğiniz anlamına gelir. IronXL paketini kurulmadan önce sürüm geçmişini ve sürüm notlarını incelemek için NuGet.org üzerinden bulabilirsiniz.

Excel Veri GridView'e En Hızlı Şekilde Nasıl Yüklenir?

En hızlı yöntem, WorkBook.Load, sheet.ToDataTable, ve GridView.DataBind'ı yaklaşık dört satır etkili koda birleştirir. Temel senaryolar için manuel sütun oluşturma ve satır yinelemesi gerekli değildir.

using IronXL;
using System.Data;

WorkBook workBook = WorkBook.Load("data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

// true = treat first row as column headers
DataTable dataTable = sheet.ToDataTable(true);

GridView1.DataSource = dataTable;
GridView1.DataBind();

ToDataTable(true) çağrısı, IronXL'a çalışma sayfasının ilk satırını sonuçta oluşan DataTable'da sütun adlarına terfi ettirmesini söyler. Bu tabloyu ASP.NET ile AutoGenerateColumns="true" kullanarak bir GridView'ya bağladığınızda, her Excel başlığı için otomatik olarak bir sütun oluşturur.

ToDataTable Karışık Veri Türlerini Nasıl Ele Alır?

DataTable içindeki her hücre değeri, ToDataTable çağrıldığında varsayılan olarak string olarak saklanır. Uygulamanızın türlenmiş sütunlara ihtiyacı varsa -- örneğin, fiyat verileri için decimal veya tarihler için DateTime -- hücre değerlerini WorkSheet dizinleyicisi üzerinden tek tek okuyabilir ve uygun .NET tipine dönüştürdükten sonra güçlü türlenmiş bir DataTable ile doldurabilirsiniz.

Basit bir GridView'da görüntüleme için, dizgi sütunları yeterlidir çünkü ızgara tüm değerleri metin olarak işler.

Excel'i İçe Aktarmak İçin Bir ASP.NET Web Formları Sayfası Nasıl Oluşturulur?

Minimal bir ithalat sayfası üç kontrol gerektirir: bir dosya yükleme girişi, bir gönderme düğmesi ve GridView. Aşağıdaki ASPX işaretlemesini <form runat="server"> öğenizin içine ekleyin:

<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload Excel File"
    OnClick="btnUpload_Click" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"
    CssClass="table table-bordered" />

CssClass niteliği, onu kullanıyorsanız, tablonuzu Bootstrap stil dosyanıza bağlar ve size ekstra yapılandırma olmadan stillenmiş satırlar ve kenarlıklar kazandırır.

Kod arkasında, butonun tıklama olayını işleyin. Aşağıdaki desen, yüklenen dosyayı geçici bir sunucu yoluna kaydeder, IronXL ile yükler ve ortaya çıkan DataTable'yı tabloya bağlar:

using IronXL;
using System.Data;
using System.IO;

void btnUpload_Click(object sender, EventArgs e)
{
    if (!FileUpload1.HasFile) return;

    string uploadDir = Server.MapPath("~/Uploads/");
    Directory.CreateDirectory(uploadDir); // ensure directory exists

    string filePath = Path.Combine(uploadDir, Path.GetFileName(FileUpload1.FileName));
    FileUpload1.SaveAs(filePath);

    WorkBook workBook = WorkBook.Load(filePath);
    WorkSheet sheet = workBook.DefaultWorkSheet;
    DataTable dt = sheet.ToDataTable(true);

    GridView1.DataSource = dt;
    GridView1.DataBind();

    // Store for later export operations
    Session["CurrentData"] = dt;
}

Bu uygulama, olay işleyicisinde gereksiz stil ifadelerini sürdürerek üst düzey ifadeler stiline uygundur. Directory.CreateDirectory savunmacı bir şekilde çağrılır -- eğer Uploads klasörü zaten varsa, çağrı işlemsiz olur.

ASP.NET C# ile IronXL'de GridView'e Excel İçe Aktar: Yüklenen elektronik tablo verileri bir GridView kontrolünde gösterildi

Kullanıcı bir .xlsx dosyası seçip yükleme düğmesine tıkladıktan sonra, tablo elektronik tablo içeriğiyle dolar. Sütun adları Excel dosyasının ilk satırından alınır ve takip eden tüm satırlar ızgarada veri satırları haline gelir.

Yüklenen Dosyayı Nasıl Doğrulamalısınız?

Üretim kullanımı için, işleme başlamadan önce dosya uzantısını ve MIME türünü kontrol etmelisiniz. IronXL, desteklenmeyen dosya formatlarında bir istisna fırlatacaktır, ancak dosya sistemine dokunmadan önce kontrolör düzeyinde kötü yüklemeleri reddetmek daha iyidir:

string ext = Path.GetExtension(FileUpload1.FileName).ToLowerInvariant();
string[] allowed = { ".xls", ".xlsx" };

if (!allowed.Contains(ext))
{
    lblError.Text = "Only .xls and .xlsx files are accepted.";
    return;
}

IIS istek limitleri aracılığıyla veya FileUpload1.FileBytes.Length'i çağırmadan önce bir eşik değeriyle kontrol ederek maksimum dosya boyutunu da zorunlu kılmalısınız.

Özgün Çalışma Sayfalarına ve Hücre Aralıklarına Nasıl Erişirsiniz?

Bir Excel çalışma kitabı birden fazla sayfa içerdiğinde, DefaultWorkSheet'ye güvenmek yerine isimle belirli bir hedefe yönelmelisiniz. IronXL, sayfa sekme adını bir dizi olarak kabul eden bir GetWorkSheet yöntemi sağlar.

using IronXL;
using System.Data;

WorkBook workBook = WorkBook.Load("sales-report.xlsx");

// Access a named sheet
WorkSheet salesSheet = workBook.GetWorkSheet("Q4 Sales");

// Read a specific cell range
var topTen = salesSheet["A1:E11"];

// Convert the entire workbook to a DataSet (one DataTable per sheet)
DataSet allSheets = workBook.ToDataSet();

// Bind the first sheet's DataTable to the grid
GridView1.DataSource = allSheets.Tables[0];
GridView1.DataBind();

ToDataSet yöntemi, uygulamanızın birden fazla sayfadan veri görüntülemesi veya kullanıcıya hangi sayfayı göreceğini seçtirmesi gerektiğinde faydalıdır. Dönen DataSet içindeki her DataTable bir Excel çalışma sayfasına karşılık gelir ve tablo adı sayfa sekmesi adını ile eşleşir.

ASP.NET C# ile IronXL'de GridView'e Excel İçe Aktar: İsimlendirilmiş çalışma sayfası verileri bir GridView'a bağlandı

Bağlamadan Önce Satırları Nasıl Filtrelersiniz?

Sadece Excel satırlarının bir alt kümesini istemeniz durumunda -- örneğin, 'Durum' sütununu 'Aktif' olan satırlar -- ToDataTable tarafından üretilen DataTable'ı okuyun, bir DataView filtresi uygulayın ve filtrelenmiş görünümü tabloya bağlayın:

DataTable dt = sheet.ToDataTable(true);
DataView dv = new DataView(dt)
{
    RowFilter = "Status = 'Active'"
};

GridView1.DataSource = dv;
GridView1.DataBind();

DataView.RowFilter, bir veritabanı yüklemeden sort ve filtreleme yapmanızı sağlayan standart SQL WHERE cümlesi söz dizimini kabul eder -- aynı ifade dili Microsoft Learn üzerinde DataColumn.Expression özelliğinde belgelenmiştir.

Excel GridView Bağlaması İçin İçe Aktarma Yöntemlerini Nasıl Karşılaştırırsınız?

Excel'den GridView'e aktarım için farklı yaklaşımlar farklı ödünleşmeler sunar. Aşağıdaki tablo, en yaygın yöntemleri özetler, böylece senaryonuz için doğru olanı seçebilirsiniz.

ASP.NET GridView bağlama için Excel ithalat yöntemlerinin karşılaştırması
YöntemSürücü GerekliXLS DesteğiXLSX DesteğiSunucu BağımlılığıKod Karmaşıklığı
IronXL (ToDataTable)HayırneEvetEvetHayırneDüşük
OLEDB / JETACE/JET MotoruEvetKısmi32/64-bit sürücüYüksek
Açık XML SDKHayırneHayırEvetHayırneYüksek
EPPlusHayırneHayırEvetYok (üretim için ticari lisans gereklidir)Orta

IronXL hem eski XLS hem de modern XLSX formatlarını kapsar, sunucu tarafı sürücü kurulumu gerektirmez ve listelenen seçenekler arasında en düşük kod karmaşıklığını sağlar. IronPDF veya IronOCR gibi diğer Iron Software ürünlerini hali hazırda kullanan ekipler için tek bir Iron Software lisansı tüm paketi kapsar.

GridView Verilerini Excel'e Geri Nasıl Aktarırsınız?

Gidiş-dönüşü tamamlamak -- Excel'den ızgaraya ve Excel'e geri -- IronXL ile eşit derecede kısadır. Bu desen, kullanıcıların şu anda ızgarada gösterilmekte olan her ne olursa olsun Excel olarak dışa aktarabilmesini sağlayan "Excel olarak indir" butonları için uygundur.

void btnExport_Click(object sender, EventArgs e)
{
    DataTable dt = Session["CurrentData"] as DataTable;
    if (dt == null) return;

    WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = workBook.CreateWorkSheet("Export");

    // Write header row
    for (int col = 0; col < dt.Columns.Count; col++)
        ws.SetCellValue(0, col, dt.Columns[col].ColumnName);

    // Write data rows
    for (int row = 0; row < dt.Rows.Count; row++)
        for (int col = 0; col < dt.Columns.Count; col++)
            ws.SetCellValue(row + 1, col, dt.Rows[row][col]?.ToString() ?? string.Empty);

    string exportDir = Server.MapPath("~/Exports/");
    Directory.CreateDirectory(exportDir);
    string exportPath = Path.Combine(exportDir, "export.xlsx");
    workBook.SaveAs(exportPath);

    Response.Clear();
    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    Response.AddHeader("Content-Disposition", "attachment; filename=export.xlsx");
    Response.TransmitFile(exportPath);
    Response.End();
}

Response.TransmitFile çağrısı, kaydedilen dosyayı tarayıcıya akış yapar, bir indirme iletişim kutusu açar. Content-Disposition: attachment üstbilgisi, tarayıcıların dosyayı satır içi görüntülemeye çalışmak yerine indirmelerini sağlar.

ASP.NET C# ile IronXL'de GridView'e Excel İçe Aktar: DataTable geri Excel dosyasına dışa aktarıldı

Yaygın IronXL Formatlama Seçenekleri Nelerdir?

Ham verilerin ötesinde, IronXL, kaydetmeden önce hücre formatlamanızı sağlar. Bold başlıklar, sütun genişlikleri, sayı formatları ve arka plan renkleri ayarlayabilirsiniz:

// Bold the header row
ws["A1:Z1"].Style.Font.Bold = true;

// Apply a currency format to column C (index 2), rows 2 onward
ws[$"C2:C{dt.Rows.Count + 1}"].FormatString = IronXL.Styles.BuiltinFormats.Accounting2;

// Auto-fit column widths (IronXL approximates based on content length)
ws.AutoSizeColumn(0);
ws.AutoSizeColumn(1);

Bu biçimlendirme çağrıları, Interop gerektirmeden Excel dosya formatının nesne modelini yansıtan IronXL hücre stil API sini kullanır.

Sonraki Adımlarınız Neler?

Şimdi, IronXL kullanarak bir ASP.NET GridView'e Excel dosyaları aktarmanın ve GridView verilerini Excel'e geri dışa aktarmanın eksiksiz, sürücüsüz bir boru hattınız var. Bu temelin üzerine inşa etmek için keşfedilecekler:

.NET Core ve ASP.NET Core uygulamaları için aynı IronXL API, Razor Sayfalarında ve MVC kontrol cihazlarında çalışır. IronXL ASP.NET Core kılavuzu, dosya yükleme işlemi ve bağımlılık enjeksiyonu kalıplarındaki farklılıkları detaylandırır.

IronXL ücretsiz deneme sürümüne başlamak için lisans almadan önce projelerinizde tüm özellikleri test edin. Deneme lisansı için kredi kartı gerekli değildir.

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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez