Open Source .NET-bibliotek för att manipulera Excel-kalkylblad
ClosedXML låter dig läsa, manipulera och skriva Microsoft Excel-dokument
ClosedXML är ett C# API med öppen källkod för att läsa, manipulera och skriva Microsoft Excel 2007+ (.xlsx, .xlsm) dokument. API:et låter dig skapa Excel-filer utan att använda Excel-applikationen och läsa filer med de förbättrade funktionerna.
Med hjälp av API:et kan du utforma dina arbetsböcker genom att använda bakgrundsfärger och cellkanter. Du kan lägga till, ta bort och flytta dina kalkylblad och hantera datatyper i excel.
Komma igång med ClosedXML
Det rekommenderade sättet att installera ClosedXML är från NuGet. Använd följande kommando för snabbare installation.
Installera ClosedXML från NuGet
Install-Package ClosedXML
Skapa nya arbetsböcker gratis med C#
CLosedXML tillåter C#.NET utvecklare att skapa nya excel kalkylblad. Du kan skapa en tom kokbok med hjälp av XLWorkbook()-metoden. Biblioteket har inkluderat flera viktiga funktioner för att hantera dina kalkylbladsdokument. Det gör det möjligt att lägga till kalkylblad i din kokbok, lägga till celler och kolumner, tillämpa stilar på rader och kolumner, ta bort oönskade celler och många fler.
Skapa nya Cookbooks via .NET 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");
}
Excel-format med C#
Den öppna källan ClosedXML API gör det möjligt för mjukvaruutvecklare att tillämpa stilar på sina excel-ark med bara ett par rader av C#-kod. De API är berikade med stylingfunktioner inklusive anpassning, gräns, fyllning, teckensnitt, nummerformat, styling rader, kolumner och mer. Biblioteket tillåter också användare att ändra stylingen enligt deras behov.
Hur man ansöker stilar till 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"));
Använda automatiska filter i Excel med C#
ClosedXML bibliotek har inkluderat komplett stöd för att tillämpa filter i dina excel kalkylblad. Biblioteket har inkluderat olika typer av filter för användarens bekvämlighet. Du kan använda filtret till ett visst intervall, tillämpa ett filter på värden och skapa egna anpassade filter också.
Hur man ansöker Auto Filters i Excel via C #
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();
}
}
}