Zum Fußzeileninhalt springen
MIT ANDEREN KOMPONENTEN VERGLEICHEN

EPPlus Excel in DataTable C# lesen (IronXL Tutorial)

Suchen Sie eine Excel-Bibliothek, um Excel-Daten in ein DataTable in C# zu lesen?

Das Lesen von Excel-Dateien in ein DataTable in C# hat verschiedene praktische Anwendungen in verschiedenen Branchen und Bereichen, wie Datenanalyse und Berichterstellung, Datenimport in Datenbanken, Datenmigration, Datenvalidierung und -bereinigung, Integration mit anderen Systemen, Automatisierung und Batchverarbeitung.

In diesem Artikel werden wir zwei verschiedene Excel-Bibliotheken für .NET Core in C# diskutieren und vergleichen, die diese Funktion zum Lesen von Excel-Daten und Excel-Dateien in ein DataTable bereitstellen. Die Bibliotheken sind

  1. EPPlus
  2. IronXL

1. EPPlus-Bibliothek

EPPlus ist eine leistungsstarke Open-Source-Bibliothek zum Erstellen und Manipulieren von Excel-Dateien in C#. Es bietet eine einfache und intuitive API, die Entwicklern ermöglicht, Excel-Tabellen programmgesteuert zu generieren, zu lesen und zu bearbeiten, ohne dass Microsoft Office oder eine Excel-Installation auf Server- oder Clientrechnern erforderlich ist. Mit EPPlus können Sie problemlos Arbeitsblätter erstellen, Daten hinzufügen, Formatierungen anwenden, Diagramme erstellen und andere Operationen an Excel-Dateien durchführen. Es unterstützt sowohl das ältere .xls-Format als auch das neuere .xlsx-Format und bietet effiziente Leistung und Speichermanagement. Egal, ob Sie dynamische Berichte generieren, Daten importieren/exportieren oder Excel-bezogene Aufgaben automatisieren müssen, EPPlus bietet eine umfassende Reihe von Funktionen und Möglichkeiten zur Vereinfachung der Excel-Dateiverarbeitung in C#-Anwendungen.

2. IronXL

IronXL ist eine leistungsstarke und vielseitige Bibliothek, die Entwicklern die Fähigkeit verleiht, Excel-Dateien in ihren .NET-Anwendungen mühelos zu lesen, zu schreiben und zu manipulieren. Mit seiner intuitiven und umfassenden API vereinfacht IronXL den ansonsten komplexen Prozess des Arbeitens mit Tabellenkalkulationen, indem es Entwicklern ermöglicht, Daten nahtlos zu extrahieren, Berechnungen durchzuführen, Diagramme zu erstellen und Berichte mit Leichtigkeit zu generieren. Ob es darum geht, Datenimport/-export-Aufgaben zu automatisieren, Datenanalysen durchzuführen oder dynamische Excel-Vorlagen zu erstellen, IronXL bietet eine robuste Lösung, die Entwicklern wertvolle Zeit und Mühe erspart, gleichzeitig Genauigkeit und Zuverlässigkeit im Umgang mit Excel-Daten sicherstellt. Mit seiner nahtlosen Integration, umfangreicher Dokumentation und breitem Funktionsumfang erweist sich IronXL als die erste Wahl für Entwickler, die nach einem zuverlässigen und effizienten Werkzeug suchen, um die Herausforderungen der Excel-Dateimanipulation im .NET-Framework zu meistern.

3. Installation der EPPlus-Bibliothek

Um die EPPlus-Bibliothek in Ihrem C#-Projekt zu installieren, müssen Sie zuerst ein neues konsolenbasiertes Projekt in Visual Studio erstellen. Danach können Sie es einfach über den NuGet-Paketmanager installieren.

Sobald das neue Projekt erstellt ist, gehen Sie zu Werkzeuge und fahren Sie mit dem Mauszeiger über den NuGet-Paketmanager, und wählen Sie "NuGet-Pakete für die Lösung verwalten" aus.

Ein neues Fenster wird geöffnet. In diesem neuen Fenster gehen Sie zur Option "Durchsuchen" und suchen nach "EPPlus". Es erscheint eine Liste von Paketen, und Sie sollten die neueste stabile Version auswählen. Dann klicken Sie auf die Schaltfläche "Installieren" auf der rechten Seite, um die EPPlus-Bibliothek zu installieren.

So wird EPPlus zu Ihrem Projekt hinzugefügt.

4. Installation von IronXL

Es gibt viele Methoden, um IronXL zu installieren, aber in diesem Abschnitt werden wir nur die Installation von IronXL über den NuGet-Paketmanager besprechen.

Genau wie in Abschnitt 3 erstellen Sie ein neues Projekt, gehen zu "Werkzeuge" und öffnen den NuGet-Paketmanager für Lösungen.

Im neuen Fenster geben Sie das Schlüsselwort "IronXL" in die Suchleiste ein. Eine Liste erscheint, und Sie können das IronXL-Paket auswählen, das Sie installieren möchten. Dann klicken Sie auf die Schaltfläche "Installieren", um IronXL in Ihrem Projekt zu installieren.

Jetzt ist IronXL bereit zur Verwendung.

5. Lesen von Excel-Dateien und Daten in DataTable mit der EPPlus-Bibliothek

In diesem Abschnitt werden wir den Code zum Lesen von Excel als DataTable mit dem C#-EPPlus-Paket-Excel-Bibliothek überprüfen.

Wir benötigen eine Beispieldatei, die als DataTable gelesen werden soll. Zu diesem Zweck werden wir eine Beispiel-Excel-Datei generieren.

Unten ist der Code zum Lesen der Excel-Datei als DataTable.

using OfficeOpenXml;
using System;
using System.Data;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var path = @"sample.xlsx"; // Specify the path to your Excel file
        var data = ExcelDataToDataTable(path, "Table");

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in data.Rows)
        {
            foreach (var wsrow in row.ItemArray)
            {
                Console.Write(wsrow + " ");
            }
            Console.WriteLine();
        }
    }

    /// <summary>
    /// Converts Excel sheet data to a DataTable.
    /// </summary>
    /// <param name="filePath">The path to the Excel file.</param>
    /// <param name="sheetName">The name of the worksheet to read from.</param>
    /// <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
    /// <returns>DataTable containing Excel data.</returns>
    public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
    {
        DataTable dt = new DataTable();
        var fi = new FileInfo(filePath);

        // Check if the file exists
        if (!fi.Exists)
            throw new Exception("File " + filePath + " does not exist.");

        // Set the license context for EPPlus
        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

        // Load the Excel file into an EPPlus ExcelPackage
        using (var xlPackage = new ExcelPackage(fi))
        {
            // Get the specified worksheet from the workbook
            var worksheet = xlPackage.Workbook.Worksheets[sheetName];

            // Convert the worksheet to a DataTable, optionally using the first row as column names
            dt = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = hasHeader;
            });
        }

        return dt;
    }
}
using OfficeOpenXml;
using System;
using System.Data;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var path = @"sample.xlsx"; // Specify the path to your Excel file
        var data = ExcelDataToDataTable(path, "Table");

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in data.Rows)
        {
            foreach (var wsrow in row.ItemArray)
            {
                Console.Write(wsrow + " ");
            }
            Console.WriteLine();
        }
    }

    /// <summary>
    /// Converts Excel sheet data to a DataTable.
    /// </summary>
    /// <param name="filePath">The path to the Excel file.</param>
    /// <param name="sheetName">The name of the worksheet to read from.</param>
    /// <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
    /// <returns>DataTable containing Excel data.</returns>
    public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
    {
        DataTable dt = new DataTable();
        var fi = new FileInfo(filePath);

        // Check if the file exists
        if (!fi.Exists)
            throw new Exception("File " + filePath + " does not exist.");

        // Set the license context for EPPlus
        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

        // Load the Excel file into an EPPlus ExcelPackage
        using (var xlPackage = new ExcelPackage(fi))
        {
            // Get the specified worksheet from the workbook
            var worksheet = xlPackage.Workbook.Worksheets[sheetName];

            // Convert the worksheet to a DataTable, optionally using the first row as column names
            dt = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = hasHeader;
            });
        }

        return dt;
    }
}
Imports OfficeOpenXml
Imports System
Imports System.Data
Imports System.IO

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim path = "sample.xlsx" ' Specify the path to your Excel file
		Dim data = ExcelDataToDataTable(path, "Table")

		' Iterate through each row in the DataTable and print its contents
		For Each row As DataRow In data.Rows
			For Each wsrow In row.ItemArray
				Console.Write(wsrow & " ")
			Next wsrow
			Console.WriteLine()
		Next row
	End Sub

	''' <summary>
	''' Converts Excel sheet data to a DataTable.
	''' </summary>
	''' <param name="filePath">The path to the Excel file.</param>
	''' <param name="sheetName">The name of the worksheet to read from.</param>
	''' <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
	''' <returns>DataTable containing Excel data.</returns>
	Public Shared Function ExcelDataToDataTable(ByVal filePath As String, ByVal sheetName As String, Optional ByVal hasHeader As Boolean = True) As DataTable
		Dim dt As New DataTable()
		Dim fi = New FileInfo(filePath)

		' Check if the file exists
		If Not fi.Exists Then
			Throw New Exception("File " & filePath & " does not exist.")
		End If

		' Set the license context for EPPlus
		ExcelPackage.LicenseContext = LicenseContext.NonCommercial

		' Load the Excel file into an EPPlus ExcelPackage
		Using xlPackage = New ExcelPackage(fi)
			' Get the specified worksheet from the workbook
			Dim worksheet = xlPackage.Workbook.Worksheets(sheetName)

			' Convert the worksheet to a DataTable, optionally using the first row as column names
			dt = worksheet.Cells(1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column).ToDataTable(Sub(c)
				c.FirstRowIsColumnNames = hasHeader
			End Sub)
		End Using

		Return dt
	End Function
End Class
$vbLabelText   $csharpLabel

Der obige Code definiert eine Methode, die Eingabeparameter wie den Dateipfad und den Blattnamen akzeptiert und ein DataTable als Ausgabe zurückgibt. Er iteriert auch durch jede Zeile der DataTable und gibt die Daten aus.

5.1. Ausgabe

Die Ausgabe wird der Inhalt der Excel-Datei sein, der in die Konsole gedruckt wird.

6. Lesen von Excel-Dateien als DataTable mit IronXL

Das Konvertieren eines Excel-Blattes und das Lesen als DataTable ist mit IronXL und nur wenigen Codezeilen ziemlich einfach. Zusätzlich werden wir die vorherige Excel-Datei als Eingabe verwenden.

Das folgende Code-Beispiel führt die gleiche Funktionalität wie der obige Code aus, aber mit IronXL.

using IronXL;
using System;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file into an IronXL WorkBook
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Get the default worksheet from the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet to a DataTable, specifying that the first row contains column names
        DataTable table = workSheet.ToDataTable(true);

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in table.Rows)
        {
            foreach (var cell in row.ItemArray)
            {
                Console.Write(cell + " ");
            }
            Console.WriteLine();
        }
    }
}
using IronXL;
using System;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file into an IronXL WorkBook
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Get the default worksheet from the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet to a DataTable, specifying that the first row contains column names
        DataTable table = workSheet.ToDataTable(true);

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in table.Rows)
        {
            foreach (var cell in row.ItemArray)
            {
                Console.Write(cell + " ");
            }
            Console.WriteLine();
        }
    }
}
Imports IronXL
Imports System
Imports System.Data

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Load the Excel file into an IronXL WorkBook
		Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

		' Get the default worksheet from the workbook
		Dim workSheet As WorkSheet = workBook.DefaultWorkSheet

		' Convert the worksheet to a DataTable, specifying that the first row contains column names
		Dim table As DataTable = workSheet.ToDataTable(True)

		' Iterate through each row in the DataTable and print its contents
		For Each row As DataRow In table.Rows
			For Each cell In row.ItemArray
				Console.Write(cell & " ")
			Next cell
			Console.WriteLine()
		Next row
	End Sub
End Class
$vbLabelText   $csharpLabel

Im obigen Code-Beispiel laden wir einfach die Excel-Datei und konvertieren sie über die Methode workSheet.ToDataTable(true) in ein DataTable.

6.1 Ausgabe

Die Ausgabe wird der Inhalt der Excel-Datei sein, der in die Konsole gedruckt wird.

7. Fazit

Zusammenfassend lässt sich sagen, dass sowohl EPPlus als auch IronXL hervorragende Bibliotheken sind, die leistungsstarke Funktionen bieten und den Prozess des Lesens von Excel-Dateien und deren Konvertierung in DataTables in C# vereinfachen.

EPPlus ist eine Open-Source-Bibliothek, die eine einfache API zum Generieren, Lesen und Bearbeiten von Excel-Tabellen programmgesteuert bereitstellt. Es unterstützt sowohl die Formate .xls als auch .xlsx und bietet effiziente Leistung und Speichermanagement.

Andererseits ist IronXL eine vielseitige Bibliothek, die es Entwicklern ermöglicht, mühelos mit Excel-Dateien in .NET-Anwendungen zu arbeiten. Es bietet eine intuitive API und umfassende Funktionen zum Extrahieren von Daten, Durchführung von Berechnungen, Erstellen von Diagrammen und Erstellen von Berichten. IronXL vereinfacht komplexe Excel-Datei-Manipulationsaufgaben wie Datenimport/-export, Datenanalyse und dynamische Vorlagenerstellung.

Wenn wir die Codebeispiele von sowohl IronXL als auch EPPlus vergleichen, stellen wir fest, dass der EPPlus-Code ziemlich lang, komplex und schwer zu lesen ist. Andererseits ist der IronXL-Code ziemlich einfach und leicht zu lesen. IronXL verwendet das Standardarbeitsblatt, aber bei EPPlus müssen Sie den Namen des Arbeitsblatts angeben; Andernfalls erhalten Sie einen Fehler.

Zusammenfassend würde ich IronXL gegenüber EPPlus für die Manipulation von Excel-Dateien und das Lesen von Excel-Dateien als DataTables empfehlen. Außerdem bietet IronXL weit mehr Funktionen als EPPlus beim Umgang mit Excel-Dateien mit einfachem Code. Für weitere Tutorials zu IronXL besuchen Sie bitte den folgenden Link.

Hinweis:EPPlus ist eine eingetragene Marke seines jeweiligen Eigentümers. Diese Seite steht in keiner Verbindung mit, wird nicht unterstützt von, oder gesponsert von EPPlus. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.

Häufig gestellte Fragen

Wie kann ich Excel-Daten in ein DataTable in C# einlesen?

Sie können IronXL verwenden, um Excel-Daten in ein DataTable zu lesen, indem Sie das Excel-Arbeitsbuch mit WorkBook.Load() laden, das Arbeitsblatt aufrufen und ToDataTable() verwenden, um die Daten zu konvertieren.

Was sind die Vorteile der Verwendung von IronXL zur Bearbeitung von Excel?

IronXL bietet eine einfache und intuitive API, die die Bearbeitung von Excel-Dateien vereinfacht. Es enthält Funktionen wie Datenextraktion, Berechnungen, Diagrammerstellung und Berichtsgenerierung und ist damit eine umfassende Lösung für Entwickler.

Unterstützt IronXL die Formate .xls und .xlsx?

Ja, IronXL unterstützt sowohl .xls- als auch .xlsx-Dateiformate, was Flexibilität bei der Arbeit mit unterschiedlichen Excel-Dateitypen ermöglicht.

Kann ich IronXL ohne installierte Microsoft Office verwenden?

Ja, IronXL kann verwendet werden, um Excel-Dateien zu bearbeiten, ohne dass Microsoft Office oder Excel auf Ihrem Computer installiert sein muss.

Wie installiere ich IronXL in einem .NET-Projekt?

Um IronXL zu installieren, öffnen Sie den NuGet-Paket-Manager in Ihrem .NET-Projekt, suchen Sie nach 'IronXL' und installieren Sie das Paket. Dadurch wird IronXL zu Ihrem Projekt hinzugefügt und Sie können die Funktionen nutzen.

Was sind einige gängige Probleme beim Lesen von Excel-Dateien in ein DataTable und wie kann man diese beheben?

Häufige Probleme sind falsche Dateipfade, nicht unterstützte Formate oder unsauber formatierte Daten. Stellen Sie sicher, dass der Dateipfad korrekt ist, das Format unterstützt wird und die Daten sauber sind. IronXL liefert klare Fehlermeldungen, um bei der Problembehebung zu helfen.

Wie vergleicht sich IronXL mit EPPlus beim Lesen von Excel-Dateien in ein DataTable?

IronXL wird aufgrund seiner Benutzerfreundlichkeit und umfassenden Funktionen geschätzt, während EPPlus ebenfalls effektiv ist, aber möglicherweise komplexer zu implementieren. IronXL bietet Entwicklern eine einfachere API.

Ist IronXL für große Excel-Dateien geeignet?

Ja, IronXL ist darauf ausgelegt, große Excel-Dateien effizient zu verarbeiten und bietet Funktionen, die die Leistung und die Speichernutzung bei der Dateibearbeitung optimieren.

Kann IronXL für Datenanalyse und Berichterstellung verwendet werden?

Absolut, IronXL ist hervorragend für Datenanalyse und Berichterstellung geeignet und bietet leistungsstarke Funktionen zum Extrahieren und Bearbeiten von Daten, zum Erstellen von Diagrammen und zum Generieren von Berichten.

Welche Schlüsselmerkmale von IronXL profitieren Entwicklern?

Wichtige Merkmale von IronXL sind nahtlose Datenextraktion, leistungsstarke Berechnungsfunktionen, einfache Diagrammerstellung, effiziente Berichtsgenerierung und umfassende Unterstützung von Excel-Dateiformaten.

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