Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Importieren einer Excel-Datei in DataTable mit IronXL

C# Importieren einer Excel-Datei in eine DataTable mit IronXL

Es ist kein Geheimnis, dass das manuelle Parsen von Excel-Dateien selten zu den Höhepunkten im Arbeitsalltag eines Entwicklers zählt. Wir kennen das alle: Man kämpft mit veralteten OLEDB-Verbindungszeichenfolgen oder versucht, unstrukturierte Tabellenkalkulationsdaten in ein Format zu überführen, das die .NET Anwendung auch tatsächlich versteht.

Die DataTable in C# ist der große Gleichmacher. Es fungiert als perfekte Brücke und wandelt diese Zeilen und Spalten in eine vertraute Struktur um, die für LINQ-Abfragen, DataGrid-Bindung oder einen schnellen Zugriff auf eine SQL-Datenbank geeignet ist.

IronXL nimmt Ihnen die schwerste Arbeit bei diesem Prozess ab. Anstelle komplexer Konfigurationen verwendet es eine einzige, intuitive ToDataTable-Methode zur Durchführung der Konvertierung. Egal, ob Sie ein Reporting-Tool oder ein Datenmigrationsskript erstellen, hier erfahren Sie, wie Sie Excel-Daten mühelos importieren können.

Möchtest du mitmachen? Testen Sie diese leistungsstarke Bibliothek selbst mit der kostenlosen Testversion von IronXL .

How Can You Import an Excel File into a DataTable in C#?

Um eine Excel-Datei in eine DataTable in C# zu importieren, laden Sie die Arbeitsmappe mit WorkBook.Load, greifen Sie auf das Zielarbeitsblatt zu und rufen Sie die ToDataTable-Methode auf. Diese Methode funktioniert mit XLSX-Dateien, XLS-, XLSM- und CSV-Dateien. Stellen Sie sicher, dass Sie die folgenden Namensräume referenzieren, um auf die benötigten Klassen zuzugreifen.

Installieren Sie IronXL über den NuGet -Paketmanager mit folgendem Befehl in Visual Studio mithilfe des NuGet Paketmanagers:

Install-Package IronXl.Excel

Nutzen Sie anschließend diesen kurzen Codeausschnitt, um Ihre Daten zu verarbeiten:

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

Ausgabe

Importieren einer Excel-Datei in eine DataTable mit IronXL: Bild 1 - In eine DataTable importierte Excel-Datei

Die Methode WorkBook.Load liest die Excel-Datei aus dem Pfad filePath (Zeichenfolge) und erstellt ein Workbook-Objekt, das alle Daten der Excel-Tabelle enthält. Der Parameter ToDataTable(true) gibt an, dass die erste Zeile Spaltenüberschriften enthält, die automatisch als Spaltennamen der Datentabelle verwendet werden.

Welche Methode eignet sich am besten zum Einlesen von Excel-Dateidaten in eine DataTable?

Das effiziente Lesen von Excel-Dateiinhalten erfordert die Bearbeitung sowohl von Kopfzeilen als auch von Rohdaten. Die ToDataTable-Methode von IronXL akzeptiert einen booleschen Parameter, der festlegt, ob die erste Zeile als Spaltennamen oder als Daten behandelt wird. Beachten Sie, dass die Bearbeitung erweiterter Eigenschaften oder die Konvertierung komplexer Zelltypen unter Umständen eine zusätzliche Konfiguration erfordert, die Standardmethode deckt jedoch die meisten Fälle zuverlässig ab.

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

Ausgabe

Importieren einer Excel-Datei in eine DataTable mit IronXL: Bild 2 - Ausgabe für den Import und das Einlesen einer Excel-Datei in eine DataTable

Dank dieser Flexibilität eignet sich IronXL ideal für die Verarbeitung von Excel-Tabellendateien unabhängig von deren Struktur. Im Gegensatz zum EPPlus-Paket oder herkömmlichen Methoden, die neue OleDbDataAdapter-Instanzen erfordern, erledigt IronXL die Konvertierung in einem einzigen Methodenaufruf. Die Bibliothek unterstützt .NET Core, .NET Framework und plattformübergreifende Bereitstellung, ohne dass eine Installation von Microsoft Excel erforderlich ist.

Wie wandelt man mehrere Excel-Arbeitsblätter in einen Datensatz um?

Wenn Ihre Excel-Arbeitsmappe mehrere Tabellenblätter enthält, bleibt beim Konvertieren in ein DataSet jedes Excel-Tabellenblatt als separate DataTable innerhalb der Sammlung erhalten. Diese Vorgehensweise ist für Berichtsanwendungen und die Verarbeitung von Daten aus mehreren Tabellenblättern unerlässlich.

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

Ausgabe

Importieren einer Excel-Datei in eine DataTable mit IronXL: Bild 3 - Ausgabe für den Import einer mehrseitigen Excel-Datei in ein DataSet

Die ToDataSet-Methode erstellt ein neues DataSet, das für jedes Arbeitsblatt DataTable-Objekte enthält. Die TableName-Eigenschaft jeder Tabelle spiegelt den ursprünglichen Namen des Excel-Arbeitsblatts wider, wodurch es einfach ist, während der Verarbeitung auf bestimmte Daten zuzugreifen.

Wie kann man Daten aus Excel in eine Datenbank importieren?

Ein gängiger Arbeitsablauf besteht darin, Daten aus Excel-Dateien einzulesen und in ein Datenbanksystem einzufügen. Die DataTable-Struktur lässt sich nahtlos in ADO .NET für Datenbankoperationen integrieren.

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

Dieser Code demonstriert, wie man eine Excel-Datei lädt, sie in eine DataTable konvertiert und einen Masseneinfügevorgang in die Datenbank durchführt. Die Nullprüfung gewährleistet die Datenintegrität vor dem Importvorgang.

Wie exportiert man eine DataTable zurück nach Excel?

IronXL unterstützt den bidirektionalen Datenfluss, sodass Sie aus DataTable-Objekten Excel-Dateien für Berichts- und Datenexport-Szenarien erstellen können.

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

Ausgabe

Importieren einer Excel-Datei in DataTable mit IronXL: Bild 4 - DataTable nach Excel exportiert

Die LoadWorkSheetsFromDataSet-Methode akzeptiert ein DataSet, das Ihre DataTable-Objekte enthält, und erstellt entsprechende Arbeitsblätter. Mehr über den Export von DataTable nach Excel erfahren Sie in der Dokumentation.

Abschluss

IronXL wandelt die Komplexität der Excel-zu-DataTable-Konvertierung in unkomplizierte Methodenaufrufe um. Egal ob es sich um den Import eines einzelnen Excel-Arbeitsblatts oder die Verarbeitung von Arbeitsmappen mit mehreren Tabellenblättern zu einem kompletten DataSet handelt, die Bibliothek bewältigt XLSX-Dateien, Datentypkonvertierung und streambasiertes Laden effizient.

Die Kombination aus der Flexibilität von DataTable und der intuitiven API von IronXL ermöglicht leistungsstarke Daten-Workflows für die Datenbankintegration, Berichtssysteme und die Datenbindung von Anwendungen. Laden Sie IronXL herunter , um Ihre Excel-Datenverarbeitung zu optimieren, oder erwerben Sie eine Lizenz für den Produktiveinsatz.

Starten Sie jetzt mit IronXL.
green arrow pointer

Häufig gestellte Fragen

Wie kann ich eine Excel-Datei mit C# in eine DataTable importieren?

Mit IronXL können Sie Excel-Dateien einfach in eine DataTable in C# importieren. IronXL bietet eine einfache API zum Laden von Excel-Dateien und deren Konvertierung in DataTables zur weiteren Bearbeitung.

Welche Vorteile bietet die Verwendung von IronXL zur Manipulation von Excel-Dateien in C#?

IronXL bietet eine leistungsstarke Lösung zur Bearbeitung von Excel-Dateien in C#, einschließlich des Lesens, Schreibens und Konvertierens von Excel-Daten in verschiedene Formate wie DataTables. Es unterstützt alle gängigen Excel-Dateitypen und zeichnet sich durch hohe Leistung und Benutzerfreundlichkeit aus.

Ist IronXL kompatibel mit .NET Core?

Ja, IronXL ist vollständig kompatibel mit .NET Core und ermöglicht so die plattformübergreifende Entwicklung und Bereitstellung von Anwendungen, die die Bearbeitung von Excel-Dateien erfordern.

Kann ich IronXL verwenden, um Excel-Dateien in verschiedenen Formaten zu lesen?

IronXL unterstützt das Lesen von Excel-Dateien in verschiedenen Formaten, darunter XLSX, XLS, CSV und TSV, und bietet somit Flexibilität beim Umgang mit unterschiedlichen Arten von Excel-Daten.

Unterstützt IronXL die Sicherheitsfunktionen von Excel-Dateien?

Ja, IronXL unterstützt passwortgeschützte Excel-Dateien, sodass Sie geschützte Excel-Dokumente in Ihren C#-Anwendungen laden und bearbeiten können.

Wie konvertiere ich eine Excel-Datei mit IronXL in eine DataTable?

Mit IronXL können Sie eine Excel-Datei in eine DataTable konvertieren, indem Sie die Arbeitsmappe laden, das Arbeitsblatt auswählen und die integrierten Methoden verwenden, um die Daten des Arbeitsblatts in eine DataTable zu exportieren.

Welche Anwendungsbereiche können von der Verwendung von IronXL profitieren?

IronXL eignet sich ideal für alle Anwendungen, die die Bearbeitung von Excel-Daten erfordern, wie z. B. Datenanalysetools, Berichtssysteme oder jede Software, die Excel-Daten importieren, exportieren oder ändern muss.

Kann IronXL zum Bearbeiten von Excel-Dateien verwendet werden, nachdem diese in eine DataTable importiert wurden?

Ja, IronXL ermöglicht es Ihnen, Excel-Dateien auch nach dem Import in eine DataTable zu bearbeiten und zu aktualisieren, wodurch ein nahtloses Erlebnis zum Ändern und Speichern von Änderungen gewährleistet wird.

Welche Programmierkenntnisse sind für die Nutzung von IronXL erforderlich?

IronXL ist auf Benutzerfreundlichkeit ausgelegt und verfügt über eine benutzerfreundliche API, die von Entwicklern aller Erfahrungsstufen genutzt werden kann, wodurch es sowohl für Anfänger als auch für fortgeschrittene Benutzer zugänglich ist.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an