Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Die heutigen Softwareanwendungen erfordern die Fähigkeit, Datenbanken zu erstellen und Berichte mit Hilfe von Excel-Dateien zu generieren. Es gibt heute viele Bibliotheken, die es den Benutzern ermöglichen, dies zu tun, ohne Microsoft Excel verwenden zu müssen.
In diesem Artikel werden wir diskutieren und vergleichen, wie man mit Microsoft Excel-Dokumenten programmatisch in C# .NET-Technologien mit zwei der beliebtesten Bibliotheken, IronXL und ClosedXML-Bibliothek für das Lesen, Manipulieren und Schreiben von Excel-Berichten zu arbeiten.
IronXL und ClosedXML bieten beide Methoden zum Erstellen, Bearbeiten und Lesen von Excel-Dokumenten im .NET-Framework. Als nächstes müssen Sie entscheiden, welche C#-Excel-Bibliothek für Ihr Projekt am besten geeignet ist. Dieser Artikel soll Ihnen helfen, die beste Option für Ihre Anwendungen zu finden.
Schauen wir uns zunächst an, was beide Bibliotheken zu bieten haben, und gehen wir dann zum eigentlichen Vergleich über.
IronXL ist eine .NET-Bibliothek, die das Lesen und Bearbeiten von Microsoft Excel-Dokumenten mit C# erleichtert. IronXL.Excel ist eine eigenständige .NET-Softwarebibliothek zum Lesen einer breiten Palette von Tabellenkalkulationsformaten. Es erfordert weder die Installation von Microsoft Excel, noch ist es von Interop abhängig.
IronXL ist eine intuitive C#-API, die es Ihnen ermöglicht, Excel-Tabellendateien in .NET mit blitzschneller Leistung zu lesen, zu bearbeiten und zu erstellen. IronXL unterstützt vollständig .NET Core, .NET-Framework, Xamarin, Mobile, Linux, macOS und Azure.
IronXL ist eine führende .NET Core und .NET-Framework Excel-Tabellenbibliothek für C#.
System.Daten
Objekte --- arbeiten mit Excel-Tabellen als System.Daten.DataSet
und System.Daten.DataTable
objekte.Styling --- visuelle Stile für Zellen, Schriftart, Größe, Hintergrundmuster, Rahmen, Ausrichtung und Zahlenformate.
Weitere Funktionen von IronXL können hier erkundet werden link.
ClosedXML ist eine .NET-Bibliothek zum Lesen, Verarbeiten und Schreiben von Excel 2007+ (.xlsx, .xlsm) dateien. Es zielt darauf ab, eine intuitive und benutzerfreundliche Schnittstelle für den Umgang mit der zugrunde liegenden OpenXML-Bibliothek bereitzustellen. .xlsx ist eine Dateierweiterung für ein OpenXML zugrunde liegendes API-Tabellenkalkulationsdateiformat, das von Microsoft Excel verwendet wird. Die .xlsm-Dateien unterstützen Makros. Die .xltm-Dateien sind makroaktivierte Vorlagendateien. Das .xls-Format ist ein proprietäres Binärformat, während .xlsx auf dem Office OpenXML-Format basiert.
ClosedXML ist eine .NET-Bibliothek für die Erstellung von Berichten in Microsoft Excel ohne dass Excel auf dem Rechner, auf dem der Code ausgeführt wird, installiert sein muss.
ClosedXML verfügt über eine benutzerfreundliche Oberfläche mit umfangreichen API-Funktionen für die Erstellung und Extraktion von Inhalten in Excel. Mit diesen API-Aufrufen und Pull-Requests können Sie jedes kleine Detail in Excel-Blättern oder Arbeitsmappen ändern
Alle Funktionen sind unten aufgeführt:
Formeln
Validierung
Hyper-Links
Schutz (Blatt- und Zellenebene)
Bedingte Formatierung
Freeze Panes
Tabellen
Bereiche
*Styling
Seite einrichten (Drucken)
Auto-Filter
Kommentare
Der Rest dieses Artikels wird wie folgt fortgesetzt:
Erstellen einer Konsolenanwendung
IronXL C# Bibliothek Installation
ClosedXML-Installation
Erstellen und Speichern einer neuen Excel-Arbeitsmappe und eines neuen Blattes
Excel-Datei lesen
Arbeiten mit Excel-Formeln
Lizenzvergabe
Gehen Sie wie folgt vor, um eine Konsolenanwendung zu erstellen:
Benennen Sie das Projekt "DemoApp" und klicken Sie auf Next.
Geben Sie auf dem Bildschirm Zusätzliche Informationen die Framework-Version an, die Sie verwenden möchten. In diesem Beispiel wird .NET-Framework 6.0 verwendet.
Klicken Sie auf Erstellen, um den Vorgang abzuschließen.
Jetzt ist das Projekt erstellt und wir sind fast bereit, die Bibliotheken zu testen. Wir müssen sie jedoch noch installieren und in unser Projekt integrieren. Installieren wir zunächst IronXL.
Sie können das Programm herunterladen und installieren IronXL-Bibliothek mit den folgenden Methoden:
Verwendung von Visual Studio mit NuGet-Paketen.
Manuelles Installieren der DLL.
Schauen wir uns jede einzelne davon genauer an.
Visual Studio bietet den NuGet Package Manager, um NuGet-Pakete in Ihren Projekten zu installieren. Sie können über das Projektmenü darauf zugreifen, oder indem Sie mit der rechten Maustaste auf Ihr Projekt im Projektmappen-Explorer klicken.
Suchen Sie dann auf der Registerkarte Durchsuchen nach IronXL.Excel > Installieren
Eine andere Möglichkeit, die IronXL C# Bibliothek herunterzuladen und zu installieren, ist die Verwendung der folgenden Schritte, um das IronXL NuGet-Paket über die Entwickler-Eingabeaufforderung zu installieren.
Öffnen Sie die Entwickler-Eingabeaufforderung --- normalerweise im Visual Studio-Ordner zu finden.
Geben Sie den folgenden Befehl ein:
Install-Package IronXL.Excel
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei Program.cs und dann auf Code anzeigen.
using IronXL;
using IronXL;
Imports IronXL
Alles erledigt! IronXL ist heruntergeladen, installiert und einsatzbereit. Zuvor sollten wir jedoch ClosedXML installieren.
Um das Paket ClosedXML zu installieren, können Sie es direkt von NuGet oder vom NuGet Package Manager/Console im Projekt herunterladen.
Um ClosedXML direkt zu installieren, klicken Sie auf diese link.
Öffnen Sie den NuGet Package Manager im Projektlösungsexplorer, durchsuchen Sie ClosedXML und klicken Sie auf Installieren.
Oder:
Öffnen Sie die Entwickler-Eingabeaufforderung --- normalerweise im Visual Studio-Ordner zu finden.
Geben Sie den folgenden Befehl ein:
PM> Install-Package ClosedXML
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei Program.cs und dann auf Code anzeigen.
using ClosedXML.Excel;
using ClosedXML.Excel;
Imports ClosedXML.Excel
Eine Arbeitsmappe ist eine Excel-Datei mit mehreren Arbeitsblättern mit Zeilen und Spalten. Beide Bibliotheken bieten die Möglichkeit, eine neue Excel-Arbeitsmappe und Blätter zu erstellen. Schauen wir uns den Code Schritt für Schritt an.
Die Erstellung einer neuen Excel-Arbeitsmappe mit IronXL ist denkbar einfach. Dazu ist nur eine Zeile Code erforderlich. Ja, wirklich. Fügen Sie den folgenden Code zu Ihrer static void main-Funktion in der Datei Program.cs hinzu:
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Beide XLS (ältere Excel-Datei-Version) und XLSX (aktuelle und neuere Dateiversion) dateiformate können mit IronXL erstellt werden.
Und noch einfacher ist es, ein Standard-Arbeitsblatt zu erstellen:
var worksheet = workbook.CreateWorkSheet("IronXL Features");
var worksheet = workbook.CreateWorkSheet("IronXL Features");
Dim worksheet = workbook.CreateWorkSheet("IronXL Features")
Sie können nun die Arbeitsblattvariable verwenden, um Zellwerte zu setzen und fast alles zu tun, was eine Excel-Datei tun kann.
//Add data and styles to the new worksheet
worksheet ["A1"].Value = "Hello World";
worksheet ["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet ["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
//Add data and styles to the new worksheet
worksheet ["A1"].Value = "Hello World";
worksheet ["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet ["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
'Add data and styles to the new worksheet
worksheet ("A1").Value = "Hello World"
worksheet ("A2").Style.BottomBorder.SetColor("#ff6600")
worksheet ("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double
Excel-Datei speichern:
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
'Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
Die Ausgabedatei sieht wie folgt aus:
Sie können auch Exceldateien erstellen(.xlsx, .xlsm) einfach mit ClosedXML. Der folgende Code ist ein typisches Beispiel, das dazu dient, eine einfache Excel-Datei zu erzeugen und sie zu speichern. Sie können Ihrer Arbeitsmappe ein neues Musterblatt hinzufügen und den Zellen in Ihrer Excel-Anwendung Werte zuweisen.
// Create a new empty Excel file.
var workbook = new XLWorkbook();
// Create a new worksheet and set cell A1 value to 'Hello world!'.
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";
// Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx");
// Create a new empty Excel file.
var workbook = new XLWorkbook();
// Create a new worksheet and set cell A1 value to 'Hello world!'.
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";
// Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx");
' Create a new empty Excel file.
Dim workbook = New XLWorkbook()
' Create a new worksheet and set cell A1 value to 'Hello world!'.
Dim worksheet = workbook.Worksheets.Add("ClosedXML Features")
worksheet.Cell("A1").Value = "Hello world!"
' Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx")
Die Ausgabedatei sieht wie folgt aus:
Beide Bibliotheken können vorhandene Excel-Dokumente öffnen und lesen. Werfen wir einen Blick auf den Beispielcode.
Die IronXL WorkBook-Klasse stellt ein Excel-Blatt dar. Um eine Excel-Datei mit C# zu öffnen, verwenden wir WorkBook.Load und geben den Pfad der Datei an (.xlsx). Der folgende einzeilige Code wird verwendet, um die Datei zum Lesen zu öffnen:
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
Jedes WorkBook kann mehrere Arbeitsblätter in einem Excel-Dokument enthalten. Wenn die Arbeitsmappe mehrere Arbeitsblätter enthält, rufen Sie diese wie folgt nach Namen auf:
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
Code zum Lesen der Zellwerte:
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from Ranges of cells elegantly.
For Each cell In worksheet ("A2:A10")
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
ClosedXML ermöglicht das Lesen von zuvor erstellten Dateien aus Ihrer C#-Anwendung. Sie können eine Excel-Datei mit dem folgenden Code importieren.
// Import Excel File from file's path.
var workbook = new XLWorkbook("SimpleTemplate.xlsx");
// Read worksheet from workbook using sheet number.
var worksheet1 = workbook.Worksheet(1);
// Read cell value from first sheet
var data = worksheet1.Cell("A1").GetValue<string>();
// Display on screen
Console.WriteLine(data);
// Import Excel File from file's path.
var workbook = new XLWorkbook("SimpleTemplate.xlsx");
// Read worksheet from workbook using sheet number.
var worksheet1 = workbook.Worksheet(1);
// Read cell value from first sheet
var data = worksheet1.Cell("A1").GetValue<string>();
// Display on screen
Console.WriteLine(data);
' Import Excel File from file's path.
Dim workbook = New XLWorkbook("SimpleTemplate.xlsx")
' Read worksheet from workbook using sheet number.
Dim worksheet1 = workbook.Worksheet(1)
' Read cell value from first sheet
Dim data = worksheet1.Cell("A1").GetValue(Of String)()
' Display on screen
Console.WriteLine(data)
Excel-Formeln sind eine der wichtigsten Funktionen bei der Arbeit mit Excel. Beide Bibliotheken verfügen über einen leistungsstarken Formelberechnungsmotor. Sie bieten die Möglichkeit, mit Formeln zu arbeiten und sie einfach auf Zellen anzuwenden.
Nach dem Laden der Arbeitsmappe und des Arbeitsblatts kann das folgende Codebeispiel verwendet werden, um entweder Änderungen an Formeln vorzunehmen oder auf bestimmte Zellen angewendet zu werden. Der Code lautet wie folgt:
// Set Formulas
worksheet ["A1"].Formula = "=Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "=Max(C3:C7)";
.
// Force recalculating all formula values in all sheets.
workbook.EvaluateAll();
// Set Formulas
worksheet ["A1"].Formula = "=Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "=Max(C3:C7)";
.
// Force recalculating all formula values in all sheets.
workbook.EvaluateAll();
' Set Formulas
worksheet ("A1").Formula = "=Sum(B8:C12)"
worksheet ("B8").Formula = "=C9/C11"
worksheet ("G30").Formula = "=Max(C3:C7)"
'.
' Force recalculating all formula values in all sheets.
workbook.EvaluateAll()
Sie können auch Formeln und deren Werte abrufen:
// Get the formula's calculated value. e.g. "52"
string formulaValue = worksheet ["G30"].Value;
//Get the formula as a string. e.g. "Max(C3:C7)"
string formulaString = worksheet ["G30"].Formula;
//Save your changes with updated formulas and calculated values.
workbook.Save();
// Get the formula's calculated value. e.g. "52"
string formulaValue = worksheet ["G30"].Value;
//Get the formula as a string. e.g. "Max(C3:C7)"
string formulaString = worksheet ["G30"].Formula;
//Save your changes with updated formulas and calculated values.
workbook.Save();
' Get the formula's calculated value. e.g. "52"
Dim formulaValue As String = worksheet ("G30").Value
'Get the formula as a string. e.g. "Max(C3:C7)"
Dim formulaString As String = worksheet ("G30").Formula
'Save your changes with updated formulas and calculated values.
workbook.Save()
ClosedXML unterstützt nicht alle Formeln, und Sie werden wahrscheinlich eine unangenehme Fehlermeldung erhalten, wenn die Formel nicht unterstützt wird oder ein Fehler in der Formel vorliegt. Bitte testen Sie Ihre Formeln, bevor Sie sie in Produktion geben. Schauen wir uns an, wie man sie verwendet.
// Set Formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
// You can use Evaluate function to directly calculate formula,
var sum = worksheet.Evaluate("SUM(B1:B7)");
// Force recalculation
worksheet.RecalculateAllFormulas();
// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");
// Set Formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
// You can use Evaluate function to directly calculate formula,
var sum = worksheet.Evaluate("SUM(B1:B7)");
// Force recalculation
worksheet.RecalculateAllFormulas();
// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");
' Set Formulas
worksheet.Cell("A1").Value = "Hello World!"
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)"
' You can use Evaluate function to directly calculate formula,
Dim sum = worksheet.Evaluate("SUM(B1:B7)")
' Force recalculation
worksheet.RecalculateAllFormulas()
' Save Excel file
workbook.SaveAs("Formula Calculation.xlsx")
Die Eigenschaft FormulaA1 bezieht sich auf die Zelle A1. Wenn Sie auf eine andere Zelle verweisen, müssen Sie diese zur Eigenschaft Formel hinzufügen. Z.B. FormelC2.
IronXL ist eine offen kommerzielle C#-Excel-Bibliothek. Es ist kostenlos für die Entwicklung und kann jederzeit für den kommerziellen Einsatz lizenziert werden.Lizenzen sind verfügbar für Einzelprojekte, einzelne Entwickler, Agenturen und globale Unternehmen sowie für den SaaS- und OEM-Vertrieb. Alle Lizenzen beinhalten eine 30-tägige Geld-zurück-Garantie, ein Jahr Produktsupport und Updates, Gültigkeit für Entwicklung/Taging/Produktion sowie eine permanente Lizenz (einmaliger Kauf). Das Lite-Paket beginnt mit $749.
Für ClosedXML benötigen Anwendungen, die diese DLL-Datei verwenden, keine separate Lizenz, weder für den einmaligen noch für den kommerziellen Gebrauch. Damit eine Lösung mit ClosedXML funktioniert, muss lediglich das öffentlich verfügbare NuGet-Paket "ClosedXML" installiert werden. ClosedXML ist unter der MIT-Lizenz lizenziert. Die MIT-Lizenz ist eine kurze und einfache zulässige Lizenz, deren Bedingungen lediglich die Beibehaltung des Urheberrechts und der Lizenzhinweise erfordern. Lizenzierte Werke, Änderungen und größere Werke können unter anderen Bedingungen und ohne Quellcode verbreitet werden.
IronXL ist eine vollständige Bibliothek, die alles bietet, was Sie zur Bearbeitung einer Excel-Datei benötigen. IronXL ermöglicht Entwicklern das Lesen, Erzeugen und Bearbeiten von Excel (und andere Tabellenkalkulationsdateien) in .NET-Anwendungen und Websites. Es bietet einen schnellen und natürlichen Ansatz für die Arbeit mit Excel und anderen Tabellenkalkulationsdateien in C#.
ClosedXML ist eine .NET-Bibliothek zum Lesen und Schreiben von Excel-Dateien, die es Entwicklern erleichtert, Excel 2007+-Dateien zu erstellen. Es bietet eine schöne objektorientierte Möglichkeit, die Dateien zu manipulieren (ähnlich wie VBA) ohne sich mit den Schwierigkeiten von XML-Dokumenten auseinandersetzen zu müssen. Es kann von jeder .NET-Sprache wie C# und Visual Basic verwendet werden (VB). Es bietet Funktionen von OpenXML, aber einige sind noch nicht implementiert. Z.B. Makros, Einbettung und Diagramme.
IronXL ist auch bei anderen Excel-Vorgängen wie Zelldatenformaten, Sortierung und Zellgestaltung hilfreich. Es kann auch mit Excel Spreadsheets arbeiten als System.Data.DataSet
und System.Data.DataTable
. Es unterstützt Konsolen-, Webserver- und Desktop-basierte Anwendungen. Außerdem wird es von allen Betriebssystemen unterstützt.
ClosedXML ist eine leichtgewichtige Bibliothek zum Lesen, Manipulieren und Schreiben von Excel-Anwendungen mit OpenXML API, die schnell und einfach zu implementieren ist. Es hilft bei allen wichtigen Excel-Operationen wie Page Setup, Freeze Panes, Hyperlinks, Tabellen und bedingte Formatierung. Es gibt keinen Overhead und keine Probleme mit geringer Leistung.
Im Vergleich dazu sind IronXL und ClosedXML beide schnell und genau, wenn es um Excel-Tabellen geht. Sie benötigen keine Microsoft Office-Installation oder -Lizenz, wenn es um die Erstellung von Excel-Berichten geht. IronXL hat jedoch einen Vorteil gegenüber ClosedXML, da ClosedXML nicht thread-sicher ist. IronXL ist einfach zu bedienen und bietet die Möglichkeit, andere Formate in XLSX zu konvertieren, und auch von XLSX in andere Formate wie CSV und HTML. ClosedXML erlaubt diese Konvertierung nicht. Diese Interkonvertierung ermöglicht es den Benutzern, flexibel mit anderen Dateiformaten zu arbeiten.
Jetzt können Sie fünf Iron-Produkte für das preis von nur zwei im lite-Paket für 1 Entwickler($1498) und unbegrenzt für $5.998 und sparen Sie bis zu 60%.
9 .NET API-Produkte für Ihre Bürodokumente