C#'da DataTable'yi İçe ve Dışa Aktarma
IronXL, tek bir yöntem çağrısıyla Excel çalışma kitapları ile DataSet'ler arasında dönüştürme yapar - LoadWorkSheetsFromDataSet()'yi kullanarak DataSet'leri çalışma kitaplarına içe aktarın ve ToDataSet()'yi kullanarak çalışma kitaplarını otomatik sayfa-tablo eşlemesi ile DataSet dosyaları olarak dışa aktarmak için ToDataSet()'yi kullanın.
DataSet, birden fazla ilgili tablo, ilişki ve kısıtlamayı içeren verilerin bellek içi temsilidir. Veritabanlarından, XML'den ve diğer kaynaklardan gelen verilerle çalışmak için kullanılır. C#'da Excel dosyalarıyla çalışırken, DataSet veri odaklı uygulamalarla entegre olan tanıdık bir .NET yapısı sunar.
DataTable, DataSet içindeki satır ve sütunlardan oluşan tek bir tabloyu temsil eder. IronXL, her bir Excel çalışma sayfasını otomatik olarak karşılık gelen DataTable ile eşleştirir ve dönüştürme sırasında sütun başlıklarını ve veri türlerini korur.
Hızlı Başlangıç: Çalışma Kitabını System.Data.DataSet Anında Dışa Aktarın
Bir çalışma kitabını DataSet'ye dönüştürmek için tek bir yöntem çağrısı yeterlidir. Bu örnek, isteğe bağlı ilk satır başlık tanıma özelliğini kullanarak ToDataSet komutunu kullanarak tüm çalışma kitabınızı (her sayfayı DataTable olarak) dışa aktarır.
-
IronXL aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronXL.Excel -
Bu kod parçacığını kopyalayın ve çalıştırın.
DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronXL kullanmaya başlayın
Minimal İş Akışı (5 adım)
- DataSet olarak içe ve dışa aktarma için C# kütüphanesini indirin
- Çevrim tablosu nesnesine
DataSetbir elektronik tablo nesnesine aktarmak için - İçe aktarmak için
LoadWorkSheetsFromDataSetyöntemini kullanarakDataSetçalışma kitabına içe aktarmak için - Çalışma kitabını
ToDataSetyöntemini kullanarak çalışma kitabını birDataSet - Dönüştürme sonucunu kontrol edin
DataSet'yi bir Çalışma Kitabına Nasıl Yüklerim?
Bir DataSet'yi bir çalışma kitabına içe aktarmak için statik LoadWorkSheetsFromDataSet yöntemini kullanın. Bu yöntem hem DataSet hem de Workbook nesnelerini gerektirir. Ayrıca DataSet aracılığıyla isteğe bağlı ayarları da kabul eder. Önce Create yöntemini kullanarak çalışma kitabını oluşturun. DataSet nesnesini ve workbook nesnesini yönteme aktarın.
:path=/static-assets/excel/content-code-examples/how-to/export-dataset-datatable-load.cs
using IronXL;
using System.Data;
// Create dataset
DataSet dataSet = new DataSet();
// Create workbook
WorkBook workBook = WorkBook.Create();
// Load DataSet to workBook
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
Imports IronXL
Imports System.Data
' Create dataset
Private dataSet As New DataSet()
' Create workbook
Private workBook As WorkBook = WorkBook.Create()
' Load DataSet to workBook
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)
DataSet içindeki her bir DataTable ayrı bir çalışma sayfası haline gelir. Tablo adı, veri düzenini koruyarak çalışma sayfası adı haline gelir. Birden fazla veri kaynağı için, bunu yeni elektronik tablolar oluşturmak veya mevcut çalışma sayfalarını yönetmekle birleştirin.
İşte birden fazla tablo içeren bir DataSet yükleyen kapsamlı bir örnek:
using IronXL;
using System.Data;
// Create a DataSet with multiple tables
DataSet salesData = new DataSet("CompanySales");
// Create and populate a products table
DataTable productsTable = new DataTable("Products");
productsTable.Co/lumns.Add("ProductID", typeof(int));
productsTable.Co/lumns.Add("ProductName", typeof(string));
productsTable.Co/lumns.Add("Price", typeof(decimal));
// Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99m);
productsTable.Rows.Add(2, "Mouse", 19.99m);
productsTable.Rows.Add(3, "Keyboard", 49.99m);
// Create and populate a sales table
DataTable salesTable = new DataTable("Sales");
salesTable.Co/lumns.Add("SaleID", typeof(int));
salesTable.Co/lumns.Add("ProductID", typeof(int));
salesTable.Co/lumns.Add("Quantity", typeof(int));
salesTable.Co/lumns.Add("Date", typeof(DateTime));
// Add sample sales data
salesTable.Rows.Add(1, 1, 5, DateTime.Now);
salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1));
salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2));
// Add tables to DataSet
salesData.Tables.Add(productsTable);
salesData.Tables.Add(salesTable);
// Create workbook and load DataSet
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook);
// Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx");
using IronXL;
using System.Data;
// Create a DataSet with multiple tables
DataSet salesData = new DataSet("CompanySales");
// Create and populate a products table
DataTable productsTable = new DataTable("Products");
productsTable.Co/lumns.Add("ProductID", typeof(int));
productsTable.Co/lumns.Add("ProductName", typeof(string));
productsTable.Co/lumns.Add("Price", typeof(decimal));
// Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99m);
productsTable.Rows.Add(2, "Mouse", 19.99m);
productsTable.Rows.Add(3, "Keyboard", 49.99m);
// Create and populate a sales table
DataTable salesTable = new DataTable("Sales");
salesTable.Co/lumns.Add("SaleID", typeof(int));
salesTable.Co/lumns.Add("ProductID", typeof(int));
salesTable.Co/lumns.Add("Quantity", typeof(int));
salesTable.Co/lumns.Add("Date", typeof(DateTime));
// Add sample sales data
salesTable.Rows.Add(1, 1, 5, DateTime.Now);
salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1));
salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2));
// Add tables to DataSet
salesData.Tables.Add(productsTable);
salesData.Tables.Add(salesTable);
// Create workbook and load DataSet
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook);
// Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx");
Imports IronXL
Imports System.Data
' Create a DataSet with multiple tables
Dim salesData As New DataSet("CompanySales")
' Create and populate a products table
Dim productsTable As New DataTable("Products")
productsTable.Columns.Add("ProductID", GetType(Integer))
productsTable.Columns.Add("ProductName", GetType(String))
productsTable.Columns.Add("Price", GetType(Decimal))
' Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99D)
productsTable.Rows.Add(2, "Mouse", 19.99D)
productsTable.Rows.Add(3, "Keyboard", 49.99D)
' Create and populate a sales table
Dim salesTable As New DataTable("Sales")
salesTable.Columns.Add("SaleID", GetType(Integer))
salesTable.Columns.Add("ProductID", GetType(Integer))
salesTable.Columns.Add("Quantity", GetType(Integer))
salesTable.Columns.Add("Date", GetType(DateTime))
' Add sample sales data
salesTable.Rows.Add(1, 1, 5, DateTime.Now)
salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1))
salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2))
' Add tables to DataSet
salesData.Tables.Add(productsTable)
salesData.Tables.Add(salesTable)
' Create workbook and load DataSet
Dim workBook As WorkBook = WorkBook.Create()
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook)
' Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx")
Bu yaklaşım, SQL veritabanlarından veri aktarırken veya birden çok kaynaktan gelen verileri Excel formatında birleştirirken iyi sonuç verir.
Çeşitli dosya biçimlerinden elektronik tabloları içe aktarma hakkında bilgi edinmek için Mevcut Elektronik Tabloları Yükleme bölümünü ziyaret edin.
Bir Çalışma Kitabını DataSet Olarak Nasıl Dışa Aktarabilirim?
ToDataSet yöntemi, çalışma kitabını bir System.Data.DataSet dosyasına dönüştürür; burada her çalışma sayfası bir System.Data.DataTable dosyası haline gelir. Excel çalışma kitabını DataSet nesnesine dönüştürmek için bu yöntemi çağırın. useFirstRowAsColumnNames parametresi, ilk satırın sütun adı olarak kullanılıp kullanılmayacağını belirler.
:path=/static-assets/excel-content-code-examples/how-to/export-dataset-datatable-export.cs
// BU KOD PARÇACIK YOKTUR!
' BU KOD PARÇACIK YOKTUR!
IronXL, veri türü dönüştürme işlemlerini otomatik olarak gerçekleştirir ve DataSet'lere dışa aktarırken elektronik tablo yapısını korur. Bu, Excel verilerini SQL veritabanlarıyla entegre ederken veya verileri diğer .NET uygulamalarında kullanırken yardımcı olur.
Çalışma kitabı dışa aktarma ve DataSet işlemeyi gösteren gelişmiş örnek:
using IronXL;
using System;
using System.Data;
// Load an existing Excel file
WorkBook workBook = WorkBook.Load("FinancialData.xlsx");
// Export to DataSet with column headers from first row
DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true);
// Process each DataTable in the DataSet
foreach (DataTable table in financialDataSet.Tables)
{
Console.WriteLine($"Processing table: {table.TableName}");
Console.WriteLine($"Columns: {table.Co/lumns.Count}, Rows: {table.Rows.Co/unt}");
// Iterate through columns
foreach (DataColumn column in table.Co/lumns)
{
Console.WriteLine($" Column: {column.Co/lumnName} ({column.DataType})");
}
// Process first 5 rows as example
int rowCount = 0;
foreach (DataRow row in table.Rows)
{
if (rowCount++ >= 5) break;
// Access data by column name
foreach (DataColumn col in table.Co/lumns)
{
Console.WriteLine($" {col.Co/lumnName}: {row[col]}");
}
}
}
// You can also export specific worksheets as DataTables
WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"];
DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true);
// Use the DataTable with other .NET components
// For example, bind to a DataGridView or save to database
using IronXL;
using System;
using System.Data;
// Load an existing Excel file
WorkBook workBook = WorkBook.Load("FinancialData.xlsx");
// Export to DataSet with column headers from first row
DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true);
// Process each DataTable in the DataSet
foreach (DataTable table in financialDataSet.Tables)
{
Console.WriteLine($"Processing table: {table.TableName}");
Console.WriteLine($"Columns: {table.Co/lumns.Count}, Rows: {table.Rows.Co/unt}");
// Iterate through columns
foreach (DataColumn column in table.Co/lumns)
{
Console.WriteLine($" Column: {column.Co/lumnName} ({column.DataType})");
}
// Process first 5 rows as example
int rowCount = 0;
foreach (DataRow row in table.Rows)
{
if (rowCount++ >= 5) break;
// Access data by column name
foreach (DataColumn col in table.Co/lumns)
{
Console.WriteLine($" {col.Co/lumnName}: {row[col]}");
}
}
}
// You can also export specific worksheets as DataTables
WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"];
DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true);
// Use the DataTable with other .NET components
// For example, bind to a DataGridView or save to database
Imports IronXL
Imports System
Imports System.Data
' Load an existing Excel file
Dim workBook As WorkBook = WorkBook.Load("FinancialData.xlsx")
' Export to DataSet with column headers from first row
Dim financialDataSet As DataSet = workBook.ToDataSet(useFirstRowAsColumnNames:=True)
' Process each DataTable in the DataSet
For Each table As DataTable In financialDataSet.Tables
Console.WriteLine($"Processing table: {table.TableName}")
Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}")
' Iterate through columns
For Each column As DataColumn In table.Columns
Console.WriteLine($" Column: {column.ColumnName} ({column.DataType})")
Next
' Process first 5 rows as example
Dim rowCount As Integer = 0
For Each row As DataRow In table.Rows
If rowCount >= 5 Then Exit For
rowCount += 1
' Access data by column name
For Each col As DataColumn In table.Columns
Console.WriteLine($" {col.ColumnName}: {row(col)}")
Next
Next
Next
' You can also export specific worksheets as DataTables
Dim specificSheet As WorkSheet = workBook.WorkSheets("Q1Sales")
Dim q1Data As DataTable = specificSheet.ToDataTable(useFirstRowAsColumnNames:=True)
' Use the DataTable with other .NET components
' For example, bind to a DataGridView or save to database
Dışa aktarılan DataSet, Excel'de tanımlanan ilişkileri ve kısıtlamaları korur; bu da Excel Interop bağımlılıkları olmadan karmaşık Excel veri yapılarıyla çalışmak için mükemmeldir.
Ek DataSet/DataTable Özellikleri
IronXL, DataSet ve DataTable ile çalışırken gelişmiş özellikler sunar:
Veri Türlerini İşleme
IronXL, Excel-DataSet dönüştürme sırasında veri türlerini akıllıca eşler. Sayısal hücreler uygun sayısal türlere (Int32, Double, Decimal), tarih hücreleri DateTime nesnelerine, metin hücreleri ise String'lere dönüşür. Dönüştürme işleminden önce hücre veri biçimlerini ayarlayarak bunu özelleştirin.
Performans Optimizasyonu
IronXL, büyük veri kümeleri için bellek kullanımını ve işlem hızını optimize eder. Kütüphane, her şeyi belleğe yüklemek yerine verileri verimli bir şekilde aktarır. Büyük veri hacimlerini işleyen Enterprise uygulamalar için uygundur.
Diğer Özelliklerle Entegrasyon
DataSet/DataTables işlevselliği, diğer IronXL özellikleriyle entegre olur:
DataSetdosyasına aktarmadan önce formülleri ve hesaplamaları uygulayın- Dönüştürme öncesinde verileri vurgulamak için koşullu biçimlendirme kullanın
- Görsel raporlama için grafik oluşturma ile birleştirin
intkullanarak özel serileştirmeyi destekleyindecimalaracılığıyla veri doğrulama kurallarını dahil edin- Eksik değerleri
doubleile işleyin DateTimearacılığıyla çalışma sayfası meta verilerini yönetinstringkullanarak hücre biçimlendirme türlerini koruyun
Çeşitli dosya biçimlerine elektronik tabloları dışa aktarma hakkında bilgi edinmek için Elektronik Tabloları Kaydetme veya Dışa Aktarma bölümünü ziyaret edin.
Sıkça Sorulan Sorular
C# içinde bir Excel çalışma kitabını DataSet'e nasıl dönüştürebilirim?
IronXL ile, ToDataSet() yöntemi kullanarak bir Excel çalışma kitabını DataSet'e dönüştürebilirsiniz. WorkBook.ToDataSet(useFirstRowAsColumnNames: true) çağrısını yaparak her bir sayfanın sonuçta elde edilen DataSet'te bir DataTable haline geldiği tüm çalışma kitabınızı dışa aktarabilirsiniz.
Bir DataSet'i programlı olarak bir Excel çalışma kitabına içe aktarabilir miyim?
Evet, IronXL, bir DataSet'i çalışma kitabına içe aktarmak için LoadWorkSheetsFromDataSet() yöntemini sağlar. WorkBook.Create() kullanarak bir çalışma kitabı oluşturun, ardından hem DataSet'i hem de çalışma kitabını bu statik metoda geçirin. Her bir DataTable ayrı bir çalışma sayfası olur.
Excel'e içe aktarırken DataTable adlarına ne olur?
IronXL'un LoadWorkSheetsFromDataSet() yöntemi kullanıldığında, her bir DataTable adı Excel'de çalışma sayfası adı olur, böylece veri organizasyonunuzu korur ve farklı veri kaynaklarını tanımlamayı kolaylaştırır.
Kütüphane sütun başlıklarını DataSet dönüştürme esnasında korur mu?
Evet, IronXL, Excel ve DataSet'ler arasında dönüştürürken sütun başlıklarını ve veri türlerini korur. useFirstRowAsColumnNames: true ile ToDataSet() kullanıldığında, her bir çalışma sayfasının ilk satırı sütun başlıkları olarak tanınır.
Birden fazla tablo Excel ve DataSet'ler arasında dönüştürülürken nasıl ele alınır?
IronXL, DataSet'e dönüştürülürken her bir Excel çalışma sayfasını karşılık gelen bir DataTable ile eşleştirir ve tersi. Birden fazla tablo içeren bir DataSet içe aktarılırken, her bir DataTable çalışma kitabında ayrı bir çalışma sayfası oluşturur.
Excel'i DataSet'e dışa aktarmak için gerekli minimal kod nedir?
IronXL kullanarak bir Excel çalışma kitabını DataSet'e dışa aktarmak için gereken minimal kod, sadece bir satırdır: DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true); Bu, tüm çalışma kitabınızı otomatik sayfa-tablo eşlemesiyle dönüştürür.

