Bibliotecă .NET cu sursă deschisă pentru manipularea foilor de calcul Excel
ClosedXML vă permite să citiți, să manipulați și să scrieți documente Microsoft Excel
ClosedXML este un API C# open source pentru citirea, manipularea și scrierea documentelor Microsoft Excel 2007+ (.xlsx, .xlsm). API-ul vă permite să creați fișiere Excel fără a utiliza aplicația Excel și să citiți fișiere folosind funcțiile îmbunătățite.
Folosind API-ul, vă puteți stila registrele de lucru folosind culoarea de fundal și marginile celulelor. Puteți adăuga, elimina și muta foile de lucru și puteți gestiona tipuri de date în Excel.
Noțiuni introductive cu ClosedXML
Modul recomandat de a instala ClosedXML este de la NuGet. Vă rugăm să utilizați următoarea comandă pentru o instalare mai rapidă.
Instalați ClosedXML din NuGet
Install-Package ClosedXML
Creați noi registre de lucru gratuit folosind C#
CLosedXML permite dezvoltatorilor C.NET să creeze noi foi de lucru excel. Puteți crea o carte de bucate albă folosind metoda XLWorkbook(). Biblioteca a inclus mai multe caracteristici importante pentru gestionarea documentelor foii de lucru. Acesta permite adăugarea foilor de lucru în cartea de bucate, adăugarea de celule și coloane, aplicarea stilurilor la rânduri și coloane, ștergerea celulelor nedorite și multe altele.
Creați cărți noi prin .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");
}
Stilați foi Excel folosind C#
Open source ClosedML API permite dezvoltatorilor de software să aplice stilurile pe foile lor excele cu doar câteva linii de cod C. API este îmbogățit cu caracteristici de stil, inclusiv aliniere, frontieră, umplere, font, format de numere, rânduri de styling, coloane și multe altele. Biblioteca permite, de asemenea, utilizatorilor să modifice stilul în funcție de nevoile lor.
Cum să aplicați stilurile în foile Excel prin Biblioteca C
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"));
Utilizarea filtrelor automate în Excel folosind C#
Biblioteca închisăXML a inclus suport complet pentru aplicarea filtrelor în foile de lucru ex. Biblioteca a inclus diferite tipuri de filtre pentru confortul utilizatorului. Puteți aplica filtrul într-o anumită gamă, aplicați un filtru pentru valori și creați propriile filtre personalizate.
Cum se aplică filtrele auto în Excel prin 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();
}
}
}