Open-Source-.NET-Bibliothek zum Bearbeiten von Excel-Tabellen
Mit ClosedXML können Sie Microsoft Excel-Dokumente lesen, bearbeiten und schreiben
ClosedXML ist eine Open-Source-C#-API zum Lesen, Bearbeiten und Schreiben von Microsoft Excel 2007+-Dokumenten (.xlsx, .xlsm). Mit der API können Sie Excel-Dateien erstellen, ohne die Excel-Anwendung zu verwenden, und Dateien mit den erweiterten Funktionen lesen.
Mit der API können Sie Ihre Arbeitsmappen gestalten, indem Sie Hintergrundfarben und Zellenumrandungen verwenden. Sie können Ihre Arbeitsblätter hinzufügen, entfernen und verschieben und Datentypen in Excel verwalten.
Erste Schritte mit ClosedXML
Die empfohlene Methode zur Installation von ClosedXML ist ab NuGet, Bitte benutzen Sie den folgenden Befehl für eine schnellere Installation.
Installieren Sie ClosedXML von NuGet
Install-Package ClosedXML
Erstellen Sie kostenlos neue Arbeitsmappen mit C#
CLosedXML erlaubt es C# .NET Entwicklern, neue Excel-Tabellen zu erstellen. Sie können ein leeres Kochbuch mit der Methode XLWorkbook() erstellen. Die Bibliothek hat einige wichtige Funktionen zur Verwaltung Ihrer Tabellendokumente enthalten. Es erlaubt Ihnen, Arbeitsblätter in Ihr Kochbuch hinzuzufügen, Zellen und Spalten hinzuzufügen, Stile auf Zeilen und Spalten anzuwenden, unerwünschte Zellen zu löschen und vieles mehr.
Erstellen Sie neue Kochbücher über ET API
using (var workbook = new XLWorkbook())
{
var worksheet = workbook.Worksheets.Add("Sample Sheet");
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
workbook.SaveAs("HelloWorld.xlsx");
}
Formatieren Sie Excel-Tabellen mit C#
Die Open Source ClosedXML API ermöglicht es Software-Entwicklern, Stile mit nur wenigen Zeilen C#-Code auf ihre Excel-Blatts anzuwenden. Der API ist mit Stilfunktionen wie Ausrichtung, Grenze, Füllung, Schriftart, Nummernformat, Styling-Zeilen, Spalten und mehr bereichert. Die Bibliothek erlaubt es den Benutzern auch, den Stil nach ihren Bedürfnissen zu verändern.
How to Apply Styles to Excel Sheets via C# Library
var path = Program.BaseCreatedDirectory;
new StyleFont().Create(Path.Combine(path, "styleFont.xlsx"));
new StyleFill().Create(Path.Combine(path, "styleFill.xlsx"));
new StyleBorder().Create(Path.Combine(path, "styleBorder.xlsx"));
new StyleAlignment().Create(Path.Combine(path, "styleAlignment.xlsx"));
new StyleNumberFormat().Create(Path.Combine(path, "styleNumberFormat.xlsx"));
new StyleIncludeQuotePrefix().Create(Path.Combine(path, "styleIncludeQuotePrefix.xlsx"));
Verwenden von automatischen Filtern in Excel mit C#
ClosedXML-Bibliothek hat vollständige Unterstützung für die Anwendung von Filtern in Ihren Excel-Tabellen enthalten. Die Bibliothek hat verschiedene Filtertypen für die Benutzerfreundlichkeit integriert. Sie können den Filter auf einen bestimmten Bereich anwenden, einen Filter auf Werte anwenden und auch eigene Filter erstellen.
Wie Auto-Filter in Excel über C# anzuwenden sind
public class DynamicAutoFilter : IXLExample
{
public void Create(string filePath)
{
var wb = new XLWorkbook();
IXLWorksheet ws;
#region Single Column Numbers
String singleColumnNumbers = "Single Column Numbers";
ws = wb.Worksheets.Add(singleColumnNumbers);
// Add a bunch of numbers to filter
ws.Cell("A1").SetValue("Numbers")
.CellBelow().SetValue(2)
.CellBelow().SetValue(3)
.CellBelow().SetValue(3)
.CellBelow().SetValue(5)
.CellBelow().SetValue(1)
.CellBelow().SetValue(4);
// Add filters
ws.RangeUsed().SetAutoFilter().Column(1).AboveAverage();
// Sort the filtered list
//ws.AutoFilter.Sort(1);
#endregion
#region Multi Column
String multiColumn = "Multi Column";
ws = wb.Worksheets.Add(multiColumn);
ws.Cell("A1").SetValue("First")
.CellBelow().SetValue("B")
.CellBelow().SetValue("C")
.CellBelow().SetValue("C")
.CellBelow().SetValue("E")
.CellBelow().SetValue("A")
.CellBelow().SetValue("D");
ws.Cell("B1").SetValue("Numbers")
.CellBelow().SetValue(2)
.CellBelow().SetValue(3)
.CellBelow().SetValue(3)
.CellBelow().SetValue(5)
.CellBelow().SetValue(1)
.CellBelow().SetValue(4);
ws.Cell("C1").SetValue("Strings")
.CellBelow().SetValue("B")
.CellBelow().SetValue("C")
.CellBelow().SetValue("C")
.CellBelow().SetValue("E")
.CellBelow().SetValue("A")
.CellBelow().SetValue("D");
// Add filters
ws.RangeUsed().SetAutoFilter().Column(2).BelowAverage();
// Sort the filtered list
//ws.AutoFilter.Sort(3);
#endregion
using (var ms = new MemoryStream())
{
wb.SaveAs(ms);
var workbook = new XLWorkbook(ms);
#region Single Column Numbers
//workbook.Worksheet(singleColumnNumbers).AutoFilter.Sort(1, XLSortOrder.Descending);
#endregion
#region Multi Column
//workbook.Worksheet(multiColumn).AutoFilter.Sort(3, XLSortOrder.Descending);
#endregion
workbook.SaveAs(filePath);
ms.Close();
}
}
}