Open Source .NET-bibliotek for å manipulere Excel-regneark
ClosedXML lar deg lese, manipulere og skrive Microsoft Excel-dokumenter
ClosedXML er en åpen kildekode C# API for lesing, manipulering og skriving av Microsoft Excel 2007+ (.xlsx, .xlsm) dokumenter. API-en lar deg lage Excel-filer uten å bruke Excel-applikasjonen, og lese filer ved hjelp av de forbedrede funksjonene.
Ved å bruke API kan du style arbeidsbøkene dine ved å bruke bakgrunnsfarging og cellekant. Du kan legge til, fjerne og flytte regnearkene dine og administrere datatyper i excel.
Komme i gang med ClosedXML
Den anbefalte måten å installere ClosedXML på er fra NuGet. Bruk følgende kommando for raskere installasjon.
Installer ClosedXML fra NuGet
Install-Package ClosedXML
Lag nye arbeidsbøker gratis ved å bruke C#
CLosedXML lar C# .NET-utviklere lage nye Excel-regneark. Du kan opprette en tom arbeidsbok ved å bruke XLWorkbook()-metoden. Biblioteket har inkludert flere viktige funksjoner for å administrere regnearkdokumentene dine. Den lar deg legge til regneark i arbeidsboken din, legge til celler og kolonner, bruke stiler på rader og kolonner, slette de uønskede cellene og mange flere.
Lag nye arbeidsbøker 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-stilark med C#
Open source ClosedXML API gjør det mulig for programvareutviklere å bruke stiler på Excel-arkene sine med bare et par linjer med C#-kode. API-en er beriket med stilfunksjoner, inkludert justering, kantlinje, fyll, font, tallformat, stilrader, kolonner og mer. Biblioteket lar også brukere endre stylingen i henhold til deres behov.
Slik bruker du stiler på Excel-ark 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"));
Bruke automatiske filtre i Excel ved å bruke C#
ClosedXML-biblioteket har inkludert fullstendig støtte for bruk av filtre i excel-regnearkene dine. Biblioteket har inkludert ulike typer filtre for brukerens bekvemmelighet. Du kan bruke filteret på et spesifikt område, bruke et filter på verdier og lage dine egne tilpassede filtre også.
Slik bruker du automatiske filtre 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();
}
}
}