IronXL ile DataTable'a Excel Dosyası İçe Aktarma
C# ile Excel Dosyasını IronXL ile DataTable'a Aktarma
Excel dosyalarını elle ayrıştırmanın nadiren bir geliştiricinin gününü aydınlattığı bir sır değildir. Eski OLEDB bağlantı dizesiyle mücadele ettiğimiz veya yapısal olmayan tablo verilerini .NET uygulamanızın gerçekten anlayabileceği bir şeye dönüştürmeye çalıştığımız durumlar hepimizin başından geçmiştir.
C#'daki DataTable büyük eşitleyicidir. LINQ sorguları, DataGrid bağlama veya bir SQL veritabanına hızlı bir yolculuk için bu satırları ve sütunları tanıdık bir yapıya dönüştüren mükemmel bir köprü olarak çalışır.
IronXL, bu süreçte ağır yükü alır. Karmaşık konfigürasyonlar yerine, dönüşümü ele almak için tek, sezgisel bir ToDataTable metodunu kullanır. Raporlama aracı ya da veri göçü betiği inşa ediyor olun, burada Excel verilerini zahmetsizce nasıl içe aktarabileceğiniz gösteriliyor.
Takip etmek ister misiniz? IronXL ücretsiz deneme sürümünü güçlü kütüphaneyi kendiniz deneyin.
How Can You Import an Excel File into a DataTable in C#?
C# Excel dosyasını DataTable'a içe aktarmak için, çalışma kitabını WorkBook.Load kullanarak yükleyin, hedef çalışma sayfasını erişin ve ToDataTable metodunu çağırın. Bu yaklaşım, XLSX dosyaları, XLS, XLSM ve CSV formatlarıyla çalışır. Gerekli sınıflara erişim sağlamak için aşağıdaki isim alanlarını referans aldığınızdan emin olun.
Visual Studio NuGet Paket Yöneticisi'nde, NuGet Paket Yöneticisi'ni kullanarak şu komutla IronXL'yi yükleyin:
Install-Package IronXl.Excel
Daha sonra, verilerinizi hareket ettirmek için bu kısa kod parçacığını kullanın:
using IronXL;
using System;
using System.Data;
class Program
{
static void Main(string[] args)
{
// Load the Excel file from the specified path
string filePath = "sales-data.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
// Access the first worksheet in the workbook
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Convert worksheet to DataTable with first row as column headers
DataTable dt = worksheet.ToDataTable(true);
// Display the imported data
foreach (DataRow row in dt.Rows)
{
Console.WriteLine(string.Join(" | ", row.ItemArray));
}
}
}
using IronXL;
using System;
using System.Data;
class Program
{
static void Main(string[] args)
{
// Load the Excel file from the specified path
string filePath = "sales-data.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
// Access the first worksheet in the workbook
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Convert worksheet to DataTable with first row as column headers
DataTable dt = worksheet.ToDataTable(true);
// Display the imported data
foreach (DataRow row in dt.Rows)
{
Console.WriteLine(string.Join(" | ", row.ItemArray));
}
}
}
Imports IronXL
Imports System
Imports System.Data
Module Program
Sub Main(args As String())
' Load the Excel file from the specified path
Dim filePath As String = "sales-data.xlsx"
Dim workbook As WorkBook = WorkBook.Load(filePath)
' Access the first worksheet in the workbook
Dim worksheet As WorkSheet = workbook.DefaultWorkSheet
' Convert worksheet to DataTable with first row as column headers
Dim dt As DataTable = worksheet.ToDataTable(True)
' Display the imported data
For Each row As DataRow In dt.Rows
Console.WriteLine(String.Join(" | ", row.ItemArray))
Next
End Sub
End Module
Çıktı

WorkBook.Load yöntemi, belirtilen string filePath konumundan Excel dosyasını okur ve Excel sayfa verilerini içeren bir workbook nesnesi oluşturur. ToDataTable(true) parametresi, ilk sıranın sütun başlıklarını içerdiğini belirtir, bunlar otomatik olarak Veri Tablosu sütun adları olarak kullanılır.
Excel Dosya Verilerini Bir DataTable'a Okumak İçin En İyi Yöntem Nedir?
Excel dosya içeriğini verimli bir şekilde okumak, hem başlık sıralarını hem de ham veri senaryolarını ele almayı gerektirir. IronXL'nin ToDataTable yöntemi, ilk sıranın sütun adları mı yoksa veri mi olarak değerlendirileceğini belirleyen bir boolean parametresini kabul eder. Genişletilmiş özellikleri ele almak veya karmaşık hücre türlerini dönüştürmek ek yapılandırma gerektirebilir, ancak varsayılan yöntem çoğu durumu sağlam bir şekilde ele alır.
using IronXL;
using System.Data;
// Load workbook from file path
string filePath = @"C:\Data\inventory.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.WorkSheets[0];
// First row as headers (true) or as data (false)
DataTable dataTableWithHeaders = worksheet.ToDataTable(true);
DataTable dataTableWithoutHeaders = worksheet.ToDataTable(false);
// Process each row in the DataTable
foreach (DataRow row in dataTableWithHeaders.Rows)
{
for (int i = 0; i < dataTableWithHeaders.Columns.Count; i++)
{
object value = row[i];
Console.Write($"{value}\t");
}
Console.WriteLine();
}
using IronXL;
using System.Data;
// Load workbook from file path
string filePath = @"C:\Data\inventory.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.WorkSheets[0];
// First row as headers (true) or as data (false)
DataTable dataTableWithHeaders = worksheet.ToDataTable(true);
DataTable dataTableWithoutHeaders = worksheet.ToDataTable(false);
// Process each row in the DataTable
foreach (DataRow row in dataTableWithHeaders.Rows)
{
for (int i = 0; i < dataTableWithHeaders.Columns.Count; i++)
{
object value = row[i];
Console.Write($"{value}\t");
}
Console.WriteLine();
}
Imports IronXL
Imports System.Data
' Load workbook from file path
Dim filePath As String = "C:\Data\inventory.xlsx"
Dim workbook As WorkBook = WorkBook.Load(filePath)
Dim worksheet As WorkSheet = workbook.WorkSheets(0)
' First row as headers (true) or as data (false)
Dim dataTableWithHeaders As DataTable = worksheet.ToDataTable(True)
Dim dataTableWithoutHeaders As DataTable = worksheet.ToDataTable(False)
' Process each row in the DataTable
For Each row As DataRow In dataTableWithHeaders.Rows
For i As Integer = 0 To dataTableWithHeaders.Columns.Count - 1
Dim value As Object = row(i)
Console.Write($"{value}" & vbTab)
Next
Console.WriteLine()
Next
Çıktı

Bu esneklik, IronXL'yi yapılarına bakılmaksızın Excel hesap tablosu dosyalarını işlemek için ideal kılar. EPPlus paketi veya yeni OleDbDataAdapter örnekleri gerektiren geleneksel yöntemlerin aksine, IronXL dönüşümü tek bir yöntem çağrısında ele alır. Kütüphane, .NET Core, .NET Framework ve çapraz platform dağıtımını Microsoft Excel yüklemesi gerektirmeden destekler.
Birden Fazla Excel Çalışma Sayfasını Bir DataSet'e Nasıl Dönüştürürsünüz?
Excel çalışma kitabınız birden fazla sayfa içerdiğinde, bir DataSet'e dönüştürmek her Excel çalışma sayfasını koleksiyon içinde ayrı bir DataTable olarak korur. Bu yaklaşım, raporlama uygulamaları ve çoklu sayfa veri işlemesi için gereklidir.
using IronXL;
using System;
using System.Data;
// Load multi-sheet workbook
WorkBook workbook = WorkBook.Load("quarterly-reports.xlsx");
// Convert entire workbook to DataSet (each sheet becomes a DataTable)
DataSet dataset = workbook.ToDataSet();
// Iterate through all tables in the DataSet
foreach (DataTable table in dataset.Tables)
{
Console.WriteLine($"Sheet: {table.TableName}");
Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}");
foreach (DataRow row in table.Rows)
{
Console.WriteLine(string.Join(", ", row.ItemArray));
}
}
using IronXL;
using System;
using System.Data;
// Load multi-sheet workbook
WorkBook workbook = WorkBook.Load("quarterly-reports.xlsx");
// Convert entire workbook to DataSet (each sheet becomes a DataTable)
DataSet dataset = workbook.ToDataSet();
// Iterate through all tables in the DataSet
foreach (DataTable table in dataset.Tables)
{
Console.WriteLine($"Sheet: {table.TableName}");
Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}");
foreach (DataRow row in table.Rows)
{
Console.WriteLine(string.Join(", ", row.ItemArray));
}
}
Imports IronXL
Imports System
Imports System.Data
' Load multi-sheet workbook
Dim workbook As WorkBook = WorkBook.Load("quarterly-reports.xlsx")
' Convert entire workbook to DataSet (each sheet becomes a DataTable)
Dim dataset As DataSet = workbook.ToDataSet()
' Iterate through all tables in the DataSet
For Each table As DataTable In dataset.Tables
Console.WriteLine($"Sheet: {table.TableName}")
Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}")
For Each row As DataRow In table.Rows
Console.WriteLine(String.Join(", ", row.ItemArray))
Next
Next
Çıktı

ToDataSet yöntemi, her çalışma sayfası için DataTable nesnelerini içeren yeni bir DataSet oluşturur. Her tablonun TableName özelliği, orijinal Excel sayfası adını yansıtarak işlem sırasında belirli verilere başvurmayı kolaylaştırır.
Verileri Excell'den Bir Veritabanına Nasıl İçe Aktarabilirsiniz?
Yaygın bir iş akışı, Excel dosya verilerini okuyup bir veritabanı sistemine eklemeyi içerir. DataTable yapısı, veritabanı işlemleri için ADO.NET ile sorunsuz bir şekilde entegre olur.
using IronXL;
using System.Data;
using System.Data.SqlClient;
string filePath = @"C:\imports\customer-data.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Convert Excel data to DataTable
DataTable dt = worksheet.ToDataTable(true);
// Validate data before database insert
if (dt == null || dt.Rows.Count == 0)
{
Console.WriteLine("No data to import");
return;
}
// Insert into database using SqlBulkCopy
string connectionString = "Server=.;Database=Sales;Trusted_Connection=True;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
{
bulkCopy.DestinationTableName = "Customers";
bulkCopy.WriteToServer(dt);
}
}
Console.WriteLine($"Imported {dt.Rows.Count} records successfully");
using IronXL;
using System.Data;
using System.Data.SqlClient;
string filePath = @"C:\imports\customer-data.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Convert Excel data to DataTable
DataTable dt = worksheet.ToDataTable(true);
// Validate data before database insert
if (dt == null || dt.Rows.Count == 0)
{
Console.WriteLine("No data to import");
return;
}
// Insert into database using SqlBulkCopy
string connectionString = "Server=.;Database=Sales;Trusted_Connection=True;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
{
bulkCopy.DestinationTableName = "Customers";
bulkCopy.WriteToServer(dt);
}
}
Console.WriteLine($"Imported {dt.Rows.Count} records successfully");
Imports IronXL
Imports System.Data
Imports System.Data.SqlClient
Module Module1
Sub Main()
Dim filePath As String = "C:\imports\customer-data.xlsx"
Dim workbook As WorkBook = WorkBook.Load(filePath)
Dim worksheet As WorkSheet = workbook.DefaultWorkSheet
' Convert Excel data to DataTable
Dim dt As DataTable = worksheet.ToDataTable(True)
' Validate data before database insert
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
Console.WriteLine("No data to import")
Return
End If
' Insert into database using SqlBulkCopy
Dim connectionString As String = "Server=.;Database=Sales;Trusted_Connection=True;"
Using connection As New SqlConnection(connectionString)
connection.Open()
Using bulkCopy As New SqlBulkCopy(connection)
bulkCopy.DestinationTableName = "Customers"
bulkCopy.WriteToServer(dt)
End Using
End Using
Console.WriteLine($"Imported {dt.Rows.Count} records successfully")
End Sub
End Module
Bu kod, bir Excel dosyasını yüklemeyi, bir DataTable'a dönüştürmeyi ve toplu bir veritabanı eklemesi yapmayı gösterir. Null kontrolü, içe aktarma işlemi denemeden önce veri bütünlüğünü sağlar.
Bir DataTable'ı Excell'e Geri Nasıl Dışa Aktarırsınız?
IronXL, DataTable nesnelerinden Excel dosyaları oluşturmanıza olanak tanıyarak çift yönlü veri akışını destekler; bu, raporlama ve veri dışa aktarma senaryoları için kullanılır.
using IronXL;
using System.Data;
// Create sample DataTable
DataTable dt = new DataTable("Products");
dt.Columns.Add("ProductID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Rows.Add(1, "Widget", 29.99m);
dt.Rows.Add(2, "Gadget", 49.99m);
// Create new workbook and load DataTable
WorkBook workbook = WorkBook.Create();
workbook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } });
// Save as Excel file
workbook.SaveAs("exported-products.xlsx");
using IronXL;
using System.Data;
// Create sample DataTable
DataTable dt = new DataTable("Products");
dt.Columns.Add("ProductID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Rows.Add(1, "Widget", 29.99m);
dt.Rows.Add(2, "Gadget", 49.99m);
// Create new workbook and load DataTable
WorkBook workbook = WorkBook.Create();
workbook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } });
// Save as Excel file
workbook.SaveAs("exported-products.xlsx");
Imports IronXL
Imports System.Data
' Create sample DataTable
Dim dt As New DataTable("Products")
dt.Columns.Add("ProductID", GetType(Integer))
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Price", GetType(Decimal))
dt.Rows.Add(1, "Widget", 29.99D)
dt.Rows.Add(2, "Gadget", 49.99D)
' Create new workbook and load DataTable
Dim workbook As WorkBook = WorkBook.Create()
workbook.LoadWorkSheetsFromDataSet(New DataSet With {.Tables = {dt}})
' Save as Excel file
workbook.SaveAs("exported-products.xlsx")
Çıktı

LoadWorkSheetsFromDataSet yöntemi, DataTable nesnelerinizi içeren bir DataSet'i kabul eder ve karşılık gelen çalışma sayfalarını oluşturur. DataTable'ı Excel'e dışa aktarma hakkında belgelerde daha fazla bilgi edinin.
Sonuç
IronXL, Excel'den DataTable'a dönüştürmenin karmaşıklığını basit yöntem çağrılarına dönüştürür. Tek bir Excel çalışma sayfasını içe aktarmaktan veya çoklu sayfalı çalışma kitaplarını komple bir DataSet'e dönüştürmeye kadar, kütüphane XLSX dosyalarını, veri türü dönüştürmelerini ve akış tabanlı yüklemeyi verimli bir şekilde ele alır.
DataTable esnekliği ve IronXL'nin sezgisel API'sinin kombinasyonu, veritabanı entegrasyonu, raporlama sistemleri ve uygulama veri bağlama için güçlü veri iş akışlarını etkinleştirir. IronXL'i indirin Excel veri işlemenizi kolaylaştırmak için ya da üretim dağıtımı için bir lisans satın alın.
Sıkça Sorulan Sorular
Excel dosyasını C# ile bir DataTable'a nasıl içe aktarabilirim?
IronXL'i kullanarak C#'da Excel dosyalarını kolayca bir DataTable'a içe aktarabilirsiniz. IronXL, Excel dosyalarını yüklemek ve DataTable'lara dönüştürmek için basit bir API sunar.
C#'da Excel dosya manipülasyonu için IronXL kullanmanın yararları nelerdir?
IronXL, C#'da Excel dosyalarını manipüle etmek için okuma, yazma ve çeşitli formatlara dönüştürme dahil sağlam bir çözüm sunar. Tüm ana Excel dosya türlerini destekler ve yüksek performans ve kullanım kolaylığı sunar.
IronXL, .NET Core ile uyumlu mu?
Evet, IronXL, Excel dosya manipülasyonu gerektiren uygulamaların platformlar arası geliştirilmesi ve dağıtımı için .NET Core ile tam uyumludur.
IronXL'i farklı formatlarda Excel dosyalarını okumak için kullanabilir miyim?
IronXL, XLSX, XLS, CSV ve TSV gibi çeşitli formatlarda Excel dosyalarını okuma desteklemektedir ve farklı türde Excel verileri ile esneklik sunar.
IronXL, Excel dosya güvenlik özelliklerini destekliyor mu?
Evet, IronXL, şifre korumalı Excel dosyalarını destekler ve C# uygulamalarınızda güvenlikli Excel belgelerini yükleyip çalışmanıza olanak tanır.
IronXL ile bir Excel dosyasini bir DataTable'a nasil dönüştürurum?
IronXL ile, workbook'u yukleyerek, worksheet'i secerek ve yerlesik metodlari kullanarak worksheet verilerini bir DataTable'a aktararak bir Excel dosyasini bir DataTable'a dönüştürebilirsiniz.
IronXL kullanan uygulamalar hangi tur aplikasyondan yararlanabilir?
IronXL, veri analiz araclari, raporlama sistemleri veya Excel verilerini almak, aktarmak veya değiştirmek gereksinimi duyan her turlu yazılım için idealdir.
IronXL, bir DataTable'a aktarildiktan sonra Excel dosyalarini düzenlemek için kullanilabilir mi?
Evet, IronXL, bir DataTable'a aktarildiktan sonra bile Excel dosyalarini düzenlemenize ve güncellemenize olanak tanir, değişiklikleri düzenlemek ve kaydetmek için sorunsuz bir deneyim sunar.
IronXL'i kullanmak için ne seviyede kodlama deneyimi gereklidir?
IronXL, kullanici dostu bir API ile kullanmanizi kolaylastirmak için tasarlanmistir; bu da her seviyeden geliştirici için uygun hale getirir ve baslangic seviyesinden ileri seviyeye kadar butun kullanicilar için erisilebilir yapar.




