So importieren und exportieren Sie DataTable in C
IronXL konvertiert Excel-Arbeitsmappen und DataSets mit einzelnen Methodenaufrufen – verwenden Sie LoadWorkSheetsFromDataSet(), um DataSets in Arbeitsmappen zu importieren, und ToDataSet(), um Arbeitsmappen als DataSets mit automatischer Zuordnung von Arbeitsblättern zu Tabellen.
Ein DataSet ist eine In-Memory-Darstellung von Daten, die mehrere miteinander verbundene Tabellen, Beziehungen und Einschränkungen enthält. Wird für die Arbeit mit Daten aus Datenbanken, XML und anderen Quellen verwendet. Bei der Arbeit mit Excel-Dateien in C# bieten DataSet eine vertraute .NET-Struktur, die sich in datengesteuerte Anwendungen integrieren lässt.
Ein DataTable steht für eine einzelne Tabelle mit Zeilen und Spalten innerhalb eines DataSet. IronXL ordnet jedes Excel-Arbeitsblatt automatisch einem entsprechenden DataTable zu und bewahrt dabei Spaltenüberschriften und Datentypen während der Konvertierung.
Schnellstart: Arbeitsmappe sofort als System.Data.DataSet exportieren
Die Konvertierung einer Arbeitsmappe in ein DataSet erfordert einen einzigen Methodenaufruf. In diesem Beispiel wird Ihre gesamte Arbeitsmappe – jedes Blatt als DataTable – unter Verwendung von ToDataSet mit optionaler Erkennung der Kopfzeile in der ersten Zeile exportiert.
-
Installieren Sie IronXL mit NuGet Package Manager
PM > Install-Package IronXL.Excel -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronXL in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Laden Sie die C#-Bibliothek zum Importieren und Exportieren als DataSet herunter
- Bereiten Sie die
DataSetzum Importieren in ein Tabellenkalkulationsobjekt - Verwenden Sie die
LoadWorkSheetsFromDataSetMethode, um dieDataSetin die Arbeitsmappe - Verwenden Sie die
ToDataSetMethode, um die Arbeitsmappe alsDataSet - Überprüfen Sie das Übersetzungsergebnis
Wie lade ich einen DataSet in eine Arbeitsmappe?
Verwenden Sie die statische Methode LoadWorkSheetsFromDataSet, um ein DataSet in eine Arbeitsmappe zu importieren. Diese Methode erfordert sowohl DataSet- als auch Workbook-Objekte. Sie akzeptiert auch optionale Einstellungen über DataSet. Erstellen Sie die Arbeitsmappe zunächst mit der Methode Create. Übergeben Sie das DataSet-Objekt und das workbook-Objekt an die Methode.
: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)
Jedes DataTable innerhalb von DataSet wird zu einem separaten Arbeitsblatt. Der Tabellenname wird zum Arbeitsblattnamen, wodurch die Datenorganisation erhalten bleibt. Bei mehreren Datenquellen kombinieren Sie dies mit der Erstellung neuer Tabellenkalkulationen oder der Verwaltung bestehender Arbeitsblätter.
Hier ist ein umfassendes Beispiel für das Laden eines DataSet mit mehreren Tabellen:
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")
Dieser Ansatz eignet sich gut für den Export von Daten aus SQL-Datenbanken oder die Konsolidierung von Daten aus mehreren Quellen im Excel-Format.
Besuchen Sie "So laden Sie vorhandene Tabellenkalkulationen", um mehr über das Importieren von Tabellenkalkulationen aus verschiedenen Dateiformaten zu erfahren.
Wie exportiere ich eine Arbeitsmappe als DataSet?
Die ToDataSet-Methode konvertiert die Arbeitsmappe in eine System.Data.DataSet, wobei jedes Arbeitsblatt zu einer System.Data.DataTable wird. Rufen Sie diese Methode für die Excel-Arbeitsmappe auf, um sie in ein DataSet-Objekt zu konvertieren. Der Parameter useFirstRowAsColumnNames legt fest, ob die erste Zeile als Spaltennamen verwendet werden soll.
:path=/static-assets/excel-content-code-examples/how-to/export-dataset-datatable-export.cs
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
' DIESER CODE-AUSZUG IST NICHT VERFÜGBAR!
IronXL übernimmt automatisch die Konvertierung von Datentypen und bewahrt die Struktur der Tabellenkalkulation beim Export in DataSets. Dies ist hilfreich bei der Integration von Excel-Daten in SQL-Datenbanken oder bei der Verwendung von Daten in anderen .NET-Anwendungen.
Fortgeschrittenes Beispiel zur Veranschaulichung des Arbeitsmappenexports und der DataSet-Verarbeitung:
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
Das exportierte DataSet behält die in Excel definierten Beziehungen und Einschränkungen bei und eignet sich somit perfekt für die Arbeit mit komplexen Excel-Datenstrukturen ohne Abhängigkeiten von Excel Interop.
Zusätzliche Funktionen von DataSet/DataTable
IronXL bietet erweiterte Funktionen bei der Arbeit mit DataSet und DataTable:
Umgang mit Datentypen
IronXL ordnet Datentypen bei der Konvertierung von Excel-DataSet intelligent zu. Zahlenzellen werden zu entsprechenden Zahlentypen (Int32, Double, Decimal), Datumszellen werden zu DateTime-Objekten, Textzellen werden zu Strings. Passen Sie dies an, indem Sie vor der Konvertierung die Datenformate der Zellen festlegen.
Leistungsoptimierung
IronXL optimiert die Speichernutzung und die Verarbeitungsgeschwindigkeit für große Datensätze. Die Bibliothek streamt Daten effizient, anstatt alles in den Arbeitsspeicher zu laden. Geeignet für Enterprise-Anwendungen, die große Datenmengen verarbeiten.
Integration mit anderen Funktionen
Die DataSet-/DataTable-Funktionalität lässt sich mit anderen IronXL-Funktionen integrieren:
- Wenden Sie Formeln und Berechnungen an, bevor Sie in eine
DataSetexportieren - Verwenden Sie bedingte Formatierung, um Daten vor der Konvertierung hervorzuheben
- Kombinieren Sie dies mit der Erstellung von Diagrammen für die visuelle Berichterstellung
- Unterstützung benutzerdefinierter Serialisierung mithilfe von
int - Fügen Sie Datenvalidierungsregeln über
decimalein - Behandeln Sie fehlende Werte mit
double - Verwalten Sie Arbeitsblatt-Metadaten über
DateTime - Behalten Sie die Zellformatierungstypen mit
stringbei
Besuchen Sie "So speichern oder exportieren Sie Tabellenkalkulationen", um mehr über den Export von Tabellenkalkulationen in verschiedene Dateiformate zu erfahren.
Häufig gestellte Fragen
Wie konvertiere ich ein Excel-Arbeitsbuch in ein DataSet in C#?
Mit IronXL können Sie eine Excel-Arbeitsmappe mithilfe der Methode ToDataSet() in ein DataSet konvertieren. Rufen Sie einfach WorkBook.ToDataSet(useFirstRowAsColumnNames: true) auf, um Ihre gesamte Arbeitsmappe zu exportieren, wobei jedes Blatt zu einer DataTable im resultierenden DataSet wird.
Kann ich ein DataSet programmatisch in eine Excel-Arbeitsmappe importieren?
Ja, IronXL bietet die LoadWorkSheetsFromDataSet()-Methode, um ein DataSet in eine Arbeitsmappe zu importieren. Erstellen Sie eine Arbeitsmappe mit WorkBook.Create() und übergeben Sie dann sowohl das DataSet als auch die Arbeitsmappe an diese statische Methode. Jede DataTable wird zu einem separaten Arbeitsblatt.
Was passiert mit DataTable-Namen beim Importieren in Excel?
Bei Verwendung der LoadWorkSheetsFromDataSet()-Methode von IronXL wird jeder DataTable-Name automatisch zum Namen des Arbeitsblatts in Excel, wodurch die Datenorganisation erhalten bleibt und die Identifizierung verschiedener Datenquellen erleichtert wird.
Behält die Bibliothek die Spaltenüberschriften während der DataSet-Konvertierung bei?
Ja, IronXL behält die Spaltenüberschriften und Datentypen während der Konvertierung zwischen Excel und DataSets bei. Wenn ToDataSet() mit useFirstRowAsColumnNames auf true gesetzt wird, wird die erste Zeile jedes Arbeitsblattes als Spaltenüberschrift erkannt.
Wie werden mehrere Tabellen bei der Konvertierung zwischen Excel und DataSets behandelt?
IronXL ordnet bei der Konvertierung in DataSet jedes Excel-Arbeitsblatt automatisch einer entsprechenden DataTable zu und umgekehrt. Wenn Sie ein DataSet mit mehreren Tabellen importieren, erstellt jede DataTable ein eigenes Arbeitsblatt in der Arbeitsmappe.
Was ist der minimale Code, der für den Export von Excel in DataSet benötigt wird?
Der minimale Code zum Exportieren einer Excel-Arbeitsmappe in ein DataSet mit IronXL besteht aus nur einer Zeile: DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true); Dies konvertiert Ihre gesamte Arbeitsmappe mit automatischer Blatt-zu-Tabelle-Zuordnung.

