IronXL ile DataTable'a Excel Dosyası İçe Aktarma
C#'da IronXL ile Excel Dosyasını DataTable'a İçe Aktarma
Manuel olarak Excel dosyalarını çözümlemenin, bir geliştiricinin gününü nadiren aydınlattığı bir sır değil. Hepimiz oradaydık, eski OLEDB bağlantı dizeleriyle uğraşırken ya da yapısız hesap tablosu verilerini .NET uygulamanızın gerçekten anladığı bir şeyle eşlemeye çalışırken.
C#'da DataTable büyük eşitleyici olarak çalışır. Bu, o satırları ve sütunları tanıdık bir yapıya dönüştürerek LINQ sorgularına, DataGrid bağlamasına veya bir SQL veritabanına hızlı bir gezintiye hazır hale getirir.
IronXL, bu süreçten ağır yükü alır. Karmaşık yapılandırmalar yerine, dönüşümü ele almak için tek bir sezgisel ToDataTable yöntemini kullanır. Raporlama aracı ya da veri taşınma betiği oluşturuyor olun, Excel verilerini zahmetsizce nasıl içe aktarabileceğiniz burada.
Takip etmek ister misiniz? Bu güçlü kütüphaneyi kendiniz denemek için IronXL'nin ücretsiz deneme sürümünü kullanın.
How Can You Import an Excel File into a DataTable in C#?
C#'da Excel dosyasını DataTable içe aktarmak için, WorkBook.Load kullanarak çalışma kitabını yükleyin, hedef çalışma sayfasına erişin ve ToDataTable metodunu çağırın. Bu yaklaşım, XLSX dosyaları ile çalışır, XLS, XLSM ve CSV formatlarını da destekler. Gerekli sınıflara erişmek için aşağıdaki isim alanlarını belirttiğinizden emin olun.
Visual Studio'da NuGet Paket Yöneticisi kullanarak, aşağıdaki komutla IronXL'yi yükleyin:
Install-Package IronXL.Excel
Sonra, verinizi 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 metodu, Excel dosyasını filePath konumundan okur ve tüm Excel sayfası verilerini içeren bir çalışma kitabı nesnesi oluşturur. ToDataTable(true) parametresi, ilk satırın otomatik olarak DataTable sütun adları olarak kullanılan sütun başlıklarını içerdiğini belirtir.
Excel Dosya Verilerini DataTable'a Okumak İçin En İyi Yöntem Nedir?
Excel dosya içeriğini verimli bir şekilde okumak, hem başlık satırlarının hem de ham veri senaryolarının ele alınmasını gerektirir. IronXL'un ToDataTable yöntemi, ilk satırın sütun adları olarak mı yoksa veri olarak mı kabul edileceğini belirleyen bir boolean parametre alır. Genişletilmiş özelliklerin ele alınması veya karmaşık hücre türlerinin dönüştürülmesi 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'u Excel tablolama dosyalarını yapılarından bağımsız olarak işlemek için ideal yapar. EPPlus paketi veya yeni OleDbDataAdapter örnekleri gerektiren geleneksel yöntemlerin aksine, IronXL dönüştürme işlemini tek bir yöntem çağrısıyla yönetir. Kütüphane, Microsoft Excel kurulumu gerektirmeksizin .NET Core, .NET Framework ve platformlar arası dağıtımı destekler.
Birden Fazla Excel Çalışma Sayfasını DataSet'e Nasıl Dönüştürürsünüz?
Excel çalışma kitabınız birden fazla sayfa içerdiğinde, 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 çok sayfalı veri işleme için esastır.
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 nesneleri içeren yeni bir DataSet oluşturur. Her tablonun TableName özelliği, özgün Excel sayfası adını yansıtarak işleme sırasında belirli verilere kolaylıkla başvurmanızı sağlar.
Excel'den Bir Veritabanına Nasıl Veri Aktarabilirsiniz?
Yaygın bir iş akışı, Excel dosya verilerini okumayı ve bunları bir veritabanı sistemine eklemeyi içerir. DataTable yapısı, ADO.NET ile veritabanı işlemleri için 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 veritabanı eklemesi yapmayı nasıl gerçekleştireceğinizi gösterir. Null kontrolü, aktarma işlemine başlamadan önce veri bütünlüğünü sağlar.
Bir DataTable'ı Excel'e Geri Nasıl Aktarırsınız?
IronXL, iki yönlü veri akışını destekleyerek raporlama ve veri aktarma senaryoları için DataTable nesnelerinden Excel dosyaları oluşturmanıza olanak tanı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. Belgelerde daha fazla bilgi için DataTable'ın Excel'e nasıl aktarılacağını öğrenin.
Sonuç
IronXL, Excel'den DataTable dönüştürme karmaşıklığını doğrudan yöntem çağrılarına dönüştürür. İster tek bir Excel çalışma sayfasını aktarın ister çok sayfalı çalışma kitaplarını tam bir DataSet'e işleyin, kütüphane XLSX dosyalarını, veri türü dönüştürmesini ve akış tabanlı yüklemeyi verimli bir şekilde yönetir.
DataTable esnekliği ve IronXL'un sezgisel API'si, veritabanı entegrasyonu, raporlama sistemleri ve uygulama veri bağlaması için güçlü veri iş akışları sağlar. Excel veri işlemenizi kolaylaştırmak için IronXL'u indir veya üretim dağıtımı için bir lisans satın alın.
Sıkça Sorulan Sorular
Bir Excel dosyasını C# kullanarak bir DataTable'a nasıl içe aktarabilirim?
IronXL'i kullanarak Excel dosyalarını C#'ta kolaylıkla bir DataTable'a içe aktarabilirsiniz. IronXL, Excel dosyalarını yüklemek ve onları daha fazla işleme için DataTables'e dönüştürmek üzere basit bir API sağlar.
C#'ta Excel dosyası manipülasyonu için IronXL kullanmanın faydaları nelerdir?
IronXL, Excel dosyalarını C#'ta okuma, yazma ve Excel verilerini DataTable gibi çeşitli formatlara dönüştürme için sağlam bir çözüm sunar. Tüm büyük Excel dosya türlerini destekler ve kullanım kolaylığı ve yüksek performans sunar.
IronXL .NET Core ile uyumlu mu?
Evet, IronXL, Excel dosya manipülasyonu gerektiren uygulamaların geliştirilmesi ve dağıtılmasını mümkün kılan .NET Core ile tamamen uyumludur.
IronXL'i, farklı formatlarda Excel dosyalarını okumak için kullanabilir miyim?
IronXL, XLSX, XLS, CSV ve TSV dahil olmak üzere çeşitli formatlarda Excel dosyalarını okumayı destekler, böylece farklı türde Excel verilerini işleme esnekliği sağlar.
IronXL, Excel dosyası güvenlik özelliklerini destekliyor mu?
Evet, IronXL, şifre korumalı Excel dosyalarını destekler, bu da C# uygulamalarınız içinde güvenli Excel belgeleri yükleyip çalışmanızı sağlar.
IronXL kullanarak bir Excel dosyasını DataTable'a nasıl dönüştürebilirim?
IronXL ile, bir Excel dosyasını DataTable'a dönüştürmek için çalışma kitabını yükleyin, çalışma sayfasını seçin ve çalışma sayfası verilerini bir DataTable'a dışa aktarmak için yerleşik yöntemleri kullanın.
Hangi tür uygulamalar IronXL'i kullanmaktan fayda sağlar?
Excel veri manipülasyonu gerektiren veri analizi araçları, raporlama sistemleri veya Excel verilerini içe aktarma, dışa aktarma veya değiştirme gereksinimi olan herhangi bir yazılım gibi tüm uygulamalar IronXL'i kullanmaktan fayda sağlar.
IronXL, bir DataTable'a içe aktardıktan sonra Excel dosyalarını düzenlemek için kullanılabilir mi?
Evet, IronXL size bir DataTable'a içe aktardıktan sonra bile Excel dosyalarını düzenleme ve güncelleme imkanı tanır, değişiklikleri değiştirmekte ve kaydetmektedir.
IronXL'i kullanmak için ne düzeyde bir kodlama deneyimi gerekiyor?
IronXL, kullanıcı dostu bir API'ye sahip olup, her türlü deneyim seviyesindeki geliştiricilerce kullanılabilir olarak tasarlandığından, hem acemi hem de ileri düzey kullanıcılar için erişilebilir hale gelir.




