Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Suchen Sie eine Excel-Bibliothek, um Excel-Daten in eine "DataTable" in C# zu lesen?
Das Einlesen von Excel-Dateien in eine "Datentabelle" in C# hat mehrere praktische Anwendungen in verschiedenen Branchen und Bereichen, wie z. B. Datenanalyse und -berichterstattung, Import von Daten in Datenbanken, Datenmigration, Datenvalidierung und -bereinigung, Integration mit anderen Systemen, Automatisierung und Stapelverarbeitung.
In diesem Artikel werden wir zwei verschiedene Excel-Bibliotheken für .NET Core in C# besprechen und vergleichen, die diese Funktion zum Lesen von Excel-Daten und Excel-Dateien in eine "DataTable" bieten. Die Bibliotheken sind
EPPlus
EPPlus ist eine leistungsstarke Open-Source-Bibliothek zur Erstellung und Bearbeitung von Excel-Dateien in C#. Es bietet eine einfache und intuitive API, die es Entwicklern ermöglicht, Excel-Tabellen programmatisch zu erstellen, zu lesen und zu ändern, ohne dass Microsoft Office oder Excel auf dem Server oder den Client-Rechnern installiert sein muss. Mit EPPlus können Sie auf einfache Weise Arbeitsblätter erstellen, Daten hinzufügen, Formatierungen vornehmen, Diagramme erstellen und andere Operationen mit Excel-Dateien durchführen. Es unterstützt sowohl das ältere .xls-Format als auch das neuere .xlsx-Format und bietet eine effiziente Leistungs- und Speicherverwaltung. Ganz gleich, ob Sie dynamische Berichte erstellen, Daten importieren/exportieren oder Excel-bezogene Aufgaben automatisieren möchten, EPPlus bietet eine umfassende Reihe von Funktionen und Möglichkeiten, um die Handhabung von Excel-Dateien in C#-Anwendungen zu vereinfachen.
IronXL ist eine leistungsstarke und vielseitige Bibliothek, die Entwicklern die Möglichkeit bietet, Excel-Dateien in ihren .NET-Anwendungen mühelos zu lesen, zu schreiben und zu bearbeiten. Mit seiner intuitiven und umfassenden API vereinfacht IronXL den sonst so komplexen Prozess der Arbeit mit Tabellenkalkulationen und ermöglicht es Entwicklern, nahtlos Daten zu extrahieren, Berechnungen durchzuführen, Diagramme zu erstellen und Berichte zu generieren. Ob es um die Automatisierung von Datenimport/-exportaufgaben, die Durchführung von Datenanalysen oder die Erstellung dynamischer Excel-Vorlagen geht, IronXL bietet eine robuste Lösung, die Entwicklern wertvolle Zeit und Mühe erspart und gleichzeitig Genauigkeit und Zuverlässigkeit bei der Verarbeitung von Excel-Daten gewährleistet. Mit seiner nahtlosen Integration, der ausführlichen Dokumentation und der breiten Palette an Funktionen ist IronXL die erste Wahl für Entwickler, die ein zuverlässiges und effizientes Tool suchen, um die mit der Excel-Dateibearbeitung im .NET-Framework verbundenen Herausforderungen zu meistern.
Um die EPPlus-Bibliothek in Ihrem C#-Projekt zu installieren, müssen Sie zunächst ein neues konsolenbasiertes Projekt in Visual Studio erstellen. Danach können Sie es einfach mit dem NuGet Package Manager installieren.
Sobald das neue Projekt erstellt ist, gehen Sie zu Tools und fahren Sie mit dem Mauszeiger über den NuGet Package Manager, dann wählen Sie "Manage NuGet Packages for Solution".
Es erscheint ein neues Fenster. Wählen Sie in diesem neuen Fenster die Option "Durchsuchen" und suchen Sie nach "EPPlus". Es wird eine Liste der Pakete angezeigt, und Sie sollten die neueste stabile Version auswählen. Klicken Sie dann auf die Schaltfläche "Installieren" auf der rechten Seite, um die EPPlus-Bibliothek zu installieren.
Auf diese Weise wird EPPlus zu Ihrem Projekt hinzugefügt.
Es gibt viele Methoden, IronXL zu installieren, aber in diesem Abschnitt werden wir nur die Installation von IronXL über den NuGet Package Manager behandeln.
Erstellen Sie wie in Abschnitt 3 ein neues Projekt, gehen Sie zu "Tools" und öffnen Sie den NuGet Package Manager für Lösungen.
Geben Sie im neuen Fenster das Stichwort "IronXL" in die Suchleiste ein. Es erscheint eine Liste, aus der Sie das IronXL-Paket auswählen können, das Sie installieren möchten. Klicken Sie dann auf die Schaltfläche "Installieren", um IronXL in Ihrem Projekt zu installieren.
IronXL ist jetzt einsatzbereit.
In diesem Abschnitt wird der Code zum Lesen von Excel als Datentabelle unter Verwendung der Excel-Bibliothek des C# EPPlus-Pakets untersucht.
Wir benötigen eine Excel-Beispieldatei, die als "Datentabelle" gelesen werden soll. Zu diesem Zweck werden wir eine Excel-Beispieldatei erstellen.
Nachfolgend finden Sie den Code zum Lesen der Excel-Datei als Datentabelle.
using OfficeOpenXml;
using System;
using System.Data;
using System.IO;
class Program
{
static void Main(string [] args)
{
var path = @"sample.xlsx";
var data = ExcelDataToDataTable(path, "Table");
foreach (DataRow row in data.Rows)
{
foreach (var wsrow in row.ItemArray)
{
Console.Write(wsrow);
}
Console.WriteLine();
}
}
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 Exists");
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
var xlPackage = new ExcelPackage(fi);
// get the first worksheet in the workbook
var worksheet = xlPackage.Workbook.Worksheets [sheetName];
dt = worksheet.Cells [1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
{
c.FirstRowIsColumnNames = true;
});
return dt;
}
}
using OfficeOpenXml;
using System;
using System.Data;
using System.IO;
class Program
{
static void Main(string [] args)
{
var path = @"sample.xlsx";
var data = ExcelDataToDataTable(path, "Table");
foreach (DataRow row in data.Rows)
{
foreach (var wsrow in row.ItemArray)
{
Console.Write(wsrow);
}
Console.WriteLine();
}
}
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 Exists");
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
var xlPackage = new ExcelPackage(fi);
// get the first worksheet in the workbook
var worksheet = xlPackage.Workbook.Worksheets [sheetName];
dt = worksheet.Cells [1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
{
c.FirstRowIsColumnNames = true;
});
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"
Dim data = ExcelDataToDataTable(path, "Table")
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
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 Exists")
End If
ExcelPackage.LicenseContext = LicenseContext.NonCommercial
Dim xlPackage = New ExcelPackage(fi)
' get the first worksheet in the workbook
Dim worksheet = xlPackage.Workbook.Worksheets (sheetName)
dt = worksheet.Cells (1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column).ToDataTable(Sub(c)
c.FirstRowIsColumnNames = True
End Sub)
Return dt
End Function
End Class
Der obige Code ruft eine Methode auf, die Eingabeparameter wie den Dateipfad und den Blattnamen entgegennimmt und eine "Datentabelle" als Ausgabe zurückgibt.
Die Konvertierung eines Excel-Blattes und das Einlesen als DataTable ist mit IronXL ganz einfach, mit nur wenigen Zeilen Code. Außerdem werden wir die vorherige Excel-Datei als Eingabe verwenden.
Das folgende Codebeispiel führt die gleiche Funktionalität wie der obige Code aus, verwendet aber IronXL.
using IronXL;
using System;
using System.Data;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
DataTable Table = workSheet.ToDataTable(true);
foreach (DataRow row in Table.Rows)
{
for (int row = 0; row < dataTable.Columns.Count; row ++)
{
Console.Write(row [row ] + " ");
}
Console.WriteLine();
}
using IronXL;
using System;
using System.Data;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
DataTable Table = workSheet.ToDataTable(true);
foreach (DataRow row in Table.Rows)
{
for (int row = 0; row < dataTable.Columns.Count; row ++)
{
Console.Write(row [row ] + " ");
}
Console.WriteLine();
}
Imports IronXL
Imports System
Imports System.Data
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private Table As DataTable = workSheet.ToDataTable(True)
For Each row As DataRow In Table.Rows
For row As Integer = 0 To dataTable.Columns.Count - 1
Console.Write(row (row) & " ")
Next row
Console.WriteLine()
Next row
Im obigen Codebeispiel laden wir einfach die Excel-Datei und konvertieren sie in eine Datentabelle, indem wir die Funktion "workSheet.ToDataTable" verwenden(wahr)methode.
Zusammenfassend lässt sich sagen, dass sowohl EPPlus als auch IronXL hervorragende Bibliotheken sind, die leistungsstarke Funktionen bieten und den Prozess vereinfachen, wenn es darum geht, Excel-Dateien zu lesen und in C# in DataTable zu konvertieren.
EPPlus ist eine Open-Source-Bibliothek, die eine unkomplizierte API zum programmgesteuerten Erstellen, Lesen und Ändern von Excel-Tabellen bietet. Es unterstützt sowohl das .xls- als auch das .xlsx-Format und bietet eine effiziente Leistungs- und Speicherverwaltung.
Andererseits,IronXL ist 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ühren von Berechnungen, Erstellen von Diagrammen und Erstellen von Berichten. IronXL vereinfacht komplexe Excel-Dateimanipulationsaufgaben, wie z. B. Datenimport/-export, Datenanalyse und dynamische Vorlagenerstellung.
Vergleicht man die Codebeispiele von IronXL und EPPlus, so stellt man fest, dass der EPPlus-Code recht lang, komplex und schwer zu lesen ist. Andererseits ist der IronXL-Code recht einfach und leicht zu lesen. IronXL verwendet das Standard-Arbeitsblatt, aber in EPPlus müssen Sie den Namen des Arbeitsblatts angeben, sonst erhalten Sie eine Fehlermeldung.
Zusammenfassend würde ich IronXL gegenüber EPPlus für die Bearbeitung von Excel-Dateien und das Lesen von Excel-Dateien als Datentabellen empfehlen. Außerdem bietet IronXL viel mehr Funktionen als EPPlus bei der Bearbeitung von Excel-Dateien mit einfachem Code. Weitere Tutorials zu IronXL finden Sie unter folgenden Linkslink.
9 .NET API-Produkte für Ihre Bürodokumente