Import und Export als DataSet in C# | IronXL

Importieren und Exportieren von DataSet/DataTable in C#35;

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

IronXL konvertiert zwischen Excel-Arbeitsmappen und DataSets mit einem einzigen Methodenaufruf - verwenden Sie LoadWorkSheetsFromDataSet(), um DataSets in Arbeitsmappen zu importieren, und ToDataSet(), um Arbeitsmappen als DataSets mit automatischer Blatt-zu-Tabelle-Zuordnung zu exportieren.

Ein Datensatz ist eine speicherinterne Darstellung von Daten, die mehrere zusammenhängende Tabellen, Beziehungen und Beschrä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.

Eine DataTable stellt eine einzelne Tabelle mit Zeilen und Spalten innerhalb eines DataSet dar. IronXL ordnet jedes Excel-Arbeitsblatt automatisch einer entsprechenden DataTable zu, wobei Spaltenüberschriften und Datentypen bei der Konvertierung erhalten bleiben.

als-Überschrift:2(Schnellstart: Exportiere Arbeitsmappe sofort als System.Data.DataSet)

Die Konvertierung einer Arbeitsmappe in ein DataSet erfordert einen Methodenaufruf. Dieses Beispiel exportiert Ihre gesamte Arbeitsmappe - jedes Blatt als DataTable - unter Verwendung von ToDataSet mit optionaler Erkennung der Kopfzeile der ersten Zeile.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronXL mit dem NuGet-Paketmanager.

    PM > Install-Package IronXL.Excel

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true);
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronXL in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer


Erste Schritte mit IronXL


Wie lade ich ein 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. Erstellen Sie zunächst die Arbeitsmappe 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
// DIESE CODE-AUSZUG IST NICHT VERFÜGBAR!
$vbLabelText   $csharpLabel

Jede DataTable innerhalb des DataSet wird zu einem eigenen Arbeitsblatt. Der Tabellenname wird zum Arbeitsblattnamen, wobei die Datenorganisation beibehalten wird. Für mehrere Datenquellen kombinieren Sie dies mit Erstellung neuer Arbeitsblätter oder Verwaltung vorhandener 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.Columns.Add("ProductID", typeof(int));
productsTable.Columns.Add("ProductName", typeof(string));
productsTable.Columns.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.Columns.Add("SaleID", typeof(int));
salesTable.Columns.Add("ProductID", typeof(int));
salesTable.Columns.Add("Quantity", typeof(int));
salesTable.Columns.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.Columns.Add("ProductID", typeof(int));
productsTable.Columns.Add("ProductName", typeof(string));
productsTable.Columns.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.Columns.Add("SaleID", typeof(int));
salesTable.Columns.Add("ProductID", typeof(int));
salesTable.Columns.Add("Quantity", typeof(int));
salesTable.Columns.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");
$vbLabelText   $csharpLabel

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 Laden vorhandener Tabellen, um mehr über das Importieren von Tabellen aus verschiedenen Dateiformaten zu erfahren.


Wie exportiere ich eine Arbeitsmappe als DataSet?

Die Methode ToDataSet konvertiert die Arbeitsmappe in ein 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 bestimmt, 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!
$vbLabelText   $csharpLabel

IronXL übernimmt automatisch die Konvertierung von Datentypen und behält die Struktur der Kalkulationstabelle bei, wenn sie in DataSets exportiert wird. Dies hilft bei der Integration von Excel-Daten mit SQL-Datenbanken oder bei der Verwendung von Daten in anderen .NET-Anwendungen.

Ein fortgeschrittenes Beispiel, das den Export von Arbeitsmappen und die Verarbeitung von DataSets demonstriert:

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.Columns.Count}, Rows: {table.Rows.Count}");

    // Iterate through columns
    foreach (DataColumn column in table.Columns)
    {
        Console.WriteLine($"  Column: {column.ColumnName} ({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.Columns)
        {
            Console.WriteLine($"    {col.ColumnName}: {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.Columns.Count}, Rows: {table.Rows.Count}");

    // Iterate through columns
    foreach (DataColumn column in table.Columns)
    {
        Console.WriteLine($"  Column: {column.ColumnName} ({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.Columns)
        {
            Console.WriteLine($"    {col.ColumnName}: {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
$vbLabelText   $csharpLabel

Das exportierte DataSet behält die in Excel definierten Beziehungen und Einschränkungen bei und eignet sich perfekt für die Arbeit mit komplexen Excel-Datenstrukturen ohne Excel Interop-Abhängigkeiten.

Zusätzliche DataSet/DataTable-Funktionen

IronXL bietet erweiterte Funktionen bei der Arbeit mit DataSet und DataTable:

Behandlung von Datentypen

IronXL ordnet die Datentypen bei der Excel-DataSet-Konvertierung auf intelligente Weise zu. Numerische Zellen werden zu entsprechenden numerischen Typen (int, decimal, double), Datumszellen werden zu DateTime-Objekten, Textzellen werden zu strings. Passen Sie dies an, indem Sie Zelldatenformate vor der Konvertierung einstellen.

Leistungsoptimierung

IronXL optimiert die Speichernutzung und die Verarbeitungsgeschwindigkeit für große Datensätze. Die Bibliothek streamt Daten effizient, anstatt alles in den Speicher zu laden. Geeignet für Unternehmensanwendungen, die große Datenmengen verarbeiten.

Integration mit anderen Funktionen

Die DataSet/DataTable-Funktionalität ist mit anderen IronXL-Funktionen integriert:

Besuchen Sie Kalkulationstabellen speichern oder exportieren, um mehr über den Export von Kalkulationstabellen 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.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 1,802,965 | Version: 2025.12 gerade veröffentlicht