Altbilgi içeriğine atla
IRONXL KULLANARAK

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

Çıktı

IronXL ile Excel Dosyasını DataTable'a Aktarma: Görsel 1 - Excel dosyası DataTable'a aktarıldı

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

Çıktı

IronXL ile Excel Dosyasını DataTable'a Aktarma: Görsel 2 - Excel dosyasının DataTable'a aktarılarak okunması

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

Çıktı

IronXL ile Excel Dosyasını DataTable'a Aktarma: Görsel 3 - Çok sayfalı bir Excel dosyasının DataSet'e aktarımı

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

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

Çıktı

IronXL ile Excel Dosyasını DataTable'a Aktarma: Görsel 4 - DataTable Excel'e aktarıldı

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.

Şimdi IronXL ile başlayın.
green arrow pointer

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.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara