C# Dilinde Veri Kümesini İçe ve Dışa Aktarma | IronXL

C#'da DataTable'yi İçe ve Dışa Aktarma

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

  1. IronXL aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronXL.Excel
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true);
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronXL kullanmaya başlayın

    arrow pointer

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

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

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

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

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:

  • DataSet dosyası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
  • int kullanarak özel serileştirmeyi destekleyin
  • decimal aracılığıyla veri doğrulama kurallarını dahil edin
  • Eksik değerleri double ile işleyin
  • DateTime aracılığıyla çalışma sayfası meta verilerini yönetin
  • string kullanarak 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.

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ı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 2,052,917 | Sürüm: 2026.6 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronXL.Excel
örnek çalıştır verinizin bir hesap tablosu haline geldiğini izleyin.