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.

Previous Next

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();
            }
        }
    }
 Deutsch