Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Die Fähigkeit, mit Excel-Dateien zu arbeiten, um Berichte zu erstellen und Datenbanken aufzubauen, ist für die heutigen Softwareanwendungen unerlässlich geworden. Es gibt inzwischen viele Bibliotheken, die es den Benutzern ermöglichen, dies ohne Microsoft Excel zu tun.
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 Aspose Cells arbeiten.
IronXL und Aspose Cells bieten beide die Methoden zum Erstellen, Bearbeiten und Lesen von Excel-Dokumenten im .NET-Framework. Die nächste Frage ist, welche C# Excel-Bibliothek am besten für Ihr Projekt 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#.
Aspose.Cells für .NET ist ein Excel Spreadsheet Programming API zur Beschleunigung der Tabellenkalkulation Verwaltung und Verarbeitung Aufgaben. Die API unterstützt die Entwicklung von plattformübergreifenden Anwendungen, die Tabellenkalkulationen erstellen, ändern, konvertieren, rendern und drucken können. Darüber hinaus ist es nicht auf die Installation von Microsoft Excel oder anderen Microsoft Office Interop-Komponenten angewiesen, sondern bietet stattdessen einen robusten Satz von APIs, die mit allen Excel-Formaten sowie CSV- und SpreadsheetML-Formaten umgehen können.
Durch die Integration der API können Entwickler grundlegende Aufgaben ausführen, wie z. B. die Verwaltung mehrerer Arbeitsblätter, die Erstellung von Arbeitsblattinhalten und -stilen von Grund auf, den Import von Daten aus verschiedenen Datenquellen in Arbeitsblätter, das Hinzufügen allgemeiner und komplexer mathematischer, finanzieller und textueller Formeln, die Bearbeitung von Diagrammen, Bildern, Kommentaren, Zeichenobjekten und vieles mehr.
Hier sind einige herausragende Eigenschaften von Aspose Cells:
Rendering
Datenverarbeitung
Intelligente Markierungen
Grid Suite
Daten importieren/exportieren
Der Rest dieses Artikels wird wie folgt fortgesetzt:
Erstellen einer Konsolenanwendung
IronXL C# Bibliothek Installation
Aspose Cells Installation
Erstellen und Speichern einer neuen Excel-Arbeitsmappe und eines neuen Blattes
Excel-Dateien lesen
Arbeiten mit Excel-Formeln
Dateien konvertieren
Lizenzvergabe
Gehen Sie wie folgt vor, um eine Konsolenanwendung zu erstellen:
Geben Sie auf dem Bildschirm Zusätzliche Informationen die Framework-Version an, die Sie verwenden möchten. In diesem Beispiel wird .NET-Framework 4.8 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 die IronXL-Bibliothek mit den folgenden Methoden herunterladen und installieren:
Verwendung von Visual Studio mit NuGet-Paketen.
Laden Sie das NuGet-Paket direkt herunter.
Manuelle Installation mit 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.
Dann suchen Sie auf der Registerkarte Durchsuchen -> IronXL.Excel -> Installieren
Dazu können Sie direkt die NuGet-Website besuchen und das Paket herunterladen. Die Schritte sind:
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 Developer-Eingabeaufforderung, die sich normalerweise im Ordner Visual Studio befindet.
Geben Sie den folgenden Befehl ein:
pM > Installieren-Paket 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 Microsoft.Office.Interop.Excel installieren.
Nachdem Sie das Projekt erstellt haben, rufen Sie den NuGet Package Manager über das Projektmenü auf, oder indem Sie mit der rechten Maustaste auf Ihr Projekt im Projektmappen-Explorer klicken.
Eine andere Möglichkeit, die Aspose Cells C# Library herunterzuladen und zu installieren, ist die Verwendung der folgenden Schritte, um das NuGet-Paket über die Entwickler-Eingabeaufforderung zu installieren.
Öffnen Sie die Developer-Eingabeaufforderung, die sich normalerweise im Ordner Visual Studio befindet.
Geben Sie den folgenden Befehl ein:
pM> Install-Package Aspose.Cells
Sie können jede Version von Aspose Cells direkt von der Website herunterladen, indem Sie auf diesen Link klicken: https://downloads.aspose.com/cells/net
Oder:
von der NuGet-Website herunterladen: https://www.nuget.org/packages/Aspose.Cells/
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei Program.cs und dann auf Code anzeigen.
using Aspose.Cells;
using Aspose.Cells;
Imports Aspose.Cells
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! Es ist nur eine einzige Codezeile! 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.
Excel-Dateien speichern:
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
'Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
Vor der Erstellung eines Arbeitsblatts und seines Inhalts muss ein Lizenzobjekt erstellt werden, um die Evaluierungsbeschränkungen zu umgehen, wenn eine lizenzierte Version erworben wurde. Der Code lautet wie folgt:
// Create a License object
License license = new License();
// Set the license of Aspose.Cells to avoid the evaluation limitations
license.SetLicense(dataDir + "Aspose.Cells.lic");
// Create a License object
License license = new License();
// Set the license of Aspose.Cells to avoid the evaluation limitations
license.SetLicense(dataDir + "Aspose.Cells.lic");
' Create a License object
Dim license As New License()
' Set the license of Aspose.Cells to avoid the evaluation limitations
license.SetLicense(dataDir & "Aspose.Cells.lic")
Als Nächstes sehen wir uns den Code zum Erstellen einer Arbeitsmappe und eines Arbeitsblatts an. Das Codebeispiel lautet wie folgt:
// Instantiate a Workbook object that represents Excel file.
Workbook wb = new Workbook();
// When you create a new workbook, a default "Sheet1" is added to the workbook.
Worksheet sheet = wb.Worksheets [0];
// Instantiate a Workbook object that represents Excel file.
Workbook wb = new Workbook();
// When you create a new workbook, a default "Sheet1" is added to the workbook.
Worksheet sheet = wb.Worksheets [0];
' Instantiate a Workbook object that represents Excel file.
Dim wb As New Workbook()
' When you create a new workbook, a default "Sheet1" is added to the workbook.
Dim sheet As Worksheet = wb.Worksheets (0)
Excel-Dateien speichern:
//Save spreadsheet
wb.Save("NewExcelFile.xlsx");
//Save spreadsheet
wb.Save("NewExcelFile.xlsx");
'Save spreadsheet
wb.Save("NewExcelFile.xlsx")
Beide Bibliotheken können vorhandene Excel-Dokumente öffnen und lesen. Werfen wir einen Blick auf den Beispielcode.
Die IronXL WorkBook-Klasse stellt eine Excel-Tabelle dar. Um eine Excel-Datei mit C# zu öffnen, verwenden wir WorkBook.Load und geben den Pfad der Excel-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 WorkSheet-Objekte enthalten. Diese stellen Arbeitsblätter im Excel-Dokument dar. Wenn die Arbeitsmappe 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
Das Lesen von Excel-Dateien in Aspose-Zellen ist ebenfalls eine unkomplizierte Aufgabe, da es mehrere Arbeitsblätter problemlos verwalten kann. Werfen Sie einen Blick auf den unten stehenden Code:
// Creating a Workbook object and opening an Excel file using its file path
var workbook = new Workbook(@"Spreadsheets\\sample.xlsx");
//Adding new sheet
Worksheet sheet = workbook1.Worksheets.Add("MySheet");
// Creating a Workbook object and opening an Excel file using its file path
var workbook = new Workbook(@"Spreadsheets\\sample.xlsx");
//Adding new sheet
Worksheet sheet = workbook1.Worksheets.Add("MySheet");
' Creating a Workbook object and opening an Excel file using its file path
Dim workbook As New Workbook("Spreadsheets\\sample.xlsx")
'Adding new sheet
Dim sheet As Worksheet = workbook1.Worksheets.Add("MySheet")
Der Code zum Lesen von Zellwerten:
//Get Cells
Cells cells = sheet.Cells;
foreach (var cell in cells)
{
Console.WriteLine(cell.Value);
}
//Get Cells
Cells cells = sheet.Cells;
foreach (var cell in cells)
{
Console.WriteLine(cell.Value);
}
'Get Cells
Dim cells As Cells = sheet.Cells
For Each cell In cells
Console.WriteLine(cell.Value)
Next cell
Excel-Formeln sind eine der wichtigsten Funktionen bei der Arbeit mit Excel-Dateien. beide Bibliotheken verfügen über eine leistungsstarke Formelberechnungs-Engine und 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 recalculate 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 recalculate 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 recalculate 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()
Mit Aspose.Cells ist es auch einfach, mit Formeln zu arbeiten. Fügen Sie den folgenden Code in die zu lesende Excel-Datei ein. Der Code lautet wie folgt:
//Setting values
Cells cells = sheet.Cells;
//Setting formula
cells ["A4"].Formula = "=SUM(A1:A3)";
// Calculating the results of formulas
workbook.CalculateFormula();
//Setting values
Cells cells = sheet.Cells;
//Setting formula
cells ["A4"].Formula = "=SUM(A1:A3)";
// Calculating the results of formulas
workbook.CalculateFormula();
'Setting values
Dim cells As Cells = sheet.Cells
'Setting formula
cells ("A4").Formula = "=SUM(A1:A3)"
' Calculating the results of formulas
workbook.CalculateFormula()
Mit dem obigen Code können Sie problemlos weitere Formeln festlegen.
Sowohl IronXL als auch Aspose Cells bieten die Möglichkeit, Excel-xlsx-Dateien in verschiedene Formate und von verschiedenen Formaten in Excel-Arbeitsmappen zu konvertieren.
Das Verfahren ist ziemlich einfach und leicht. In der Regel ist dies mit einer Zeile Code erledigt.
CSV-zu-Excel-Formate:
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat:
ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat:
ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
workbook.SaveAs("CsvToExcelConversion.xlsx")
XLSX-Datei in XLSM:
WorkBook workbook = WorkBook.Load("test.xlsx");
//This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm");
WorkBook workbook = WorkBook.Load("test.xlsx");
//This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm");
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
'This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm")
Excel zu HTML mit Optionen:
WorkBook workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
//This is how we can make row/column numbers visible in html document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
//This is how we can make hidden rows/columns visible in html document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
//This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options);
WorkBook workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
//This is how we can make row/column numbers visible in html document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
//This is how we can make hidden rows/columns visible in html document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
//This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options);
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
Dim options = New HtmlExportOptions() With {
.OutputRowNumbers = True,
.OutputColumnHeaders = True,
.OutputHiddenColumns = True,
.OutputHiddenRows = True,
.OutputLeadingSpacesAsNonBreaking = True
}
'This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options)
Es ist relativ einfach, Excel-xlsx-Dateien auch in Aspose-Zellen zu konvertieren. Werfen Sie einen Blick auf die unten stehenden Codes:
Excel zu HTML:
//Load your source workbook
Workbook workbook = new Workbook("Book1.xlsx");
//save file to html format
workbook.Save("out.html");
//Load your source workbook
Workbook workbook = new Workbook("Book1.xlsx");
//save file to html format
workbook.Save("out.html");
'Load your source workbook
Dim workbook As New Workbook("Book1.xlsx")
'save file to html format
workbook.Save("out.html")
ODs text to Excel:
//Load your source ods text file
Workbook workbook = new Workbook("book1.ods");
//Save as xlsx file
workbook.Save("ods_out.xlsx");
//Load your source ods text file
Workbook workbook = new Workbook("book1.ods");
//Save as xlsx file
workbook.Save("ods_out.xlsx");
'Load your source ods text file
Dim workbook As New Workbook("book1.ods")
'Save as xlsx file
workbook.Save("ods_out.xlsx")
Excel-Arbeitsblatt in SVG-Formate:
// Instantiate a workbook
var workbook = new Workbook();
// Populate worksheets first cell
workbook.Worksheets [0].Cells ["A1"].Value = "DEMO TEXT ON SHEET1";
// Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg");
// Instantiate a workbook
var workbook = new Workbook();
// Populate worksheets first cell
workbook.Worksheets [0].Cells ["A1"].Value = "DEMO TEXT ON SHEET1";
// Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg");
' Instantiate a workbook
Dim workbook As New Workbook()
' Populate worksheets first cell
workbook.Worksheets (0).Cells ("A1").Value = "DEMO TEXT ON SHEET1"
' Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg")
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 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.
Aspose Cells ist eine Open-Source-API und kann für die kommerzielle Nutzung lizenziert werden. Die Testversion von Aspose.Cells bietet die volle Produktfunktionalität, ist aber auf das Öffnen von 100 Dateien in einem Programm beschränkt und hat ein zusätzliches Arbeitsblatt mit dem Test-Wasserzeichen. Der technische Support ist kostenlos und unbegrenzt und wird sowohl für lizenzierte als auch für Testbenutzer angeboten. Wenn Sie Aspose.Cells ohne Einschränkungen der Evaluierungsversion testen möchten, fordern Sie eine 30-tägige temporäre Lizenz an oder kaufen Sie eine lizenzierte Version von diesem link. Das Entwicklerpaket für kleine Unternehmen kostet ab 1199 US-Dollar.
Im Vergleich dazu liefern sich IronXL und Aspose.Cells ein Kopf-an-Kopf-Rennen bei der Arbeit mit Excel. IronXL und Aspose.Cells bieten sowohl erweiterte Excel-Funktionen als auch grundlegende Excel-Operationen. IronXL ist für die Entwicklung kostenlos, während Aspose.Cells eine Testphase mit einer Begrenzung auf 100 Dateien pro Anwendung hat. Hier liegt der Vorteil von IronXL bei der nicht-kommerziellen Nutzung. Darüber hinaus bietet IronXL auch die Konvertierung in und aus dem JSON-Format.
9 .NET API-Produkte für Ihre Bürodokumente