Atvirojo kodo .NET biblioteka, skirta manipuliuoti Excel skaičiuoklėmis
„ClosedXML“ leidžia skaityti, valdyti ir rašyti „Microsoft Excel“ dokumentus
ClosedXML yra atvirojo kodo C# API, skirta skaityti, valdyti ir rašyti Microsoft Excel 2007+ (.xlsx, .xlsm) dokumentus. API leidžia kurti „Excel“ failus nenaudojant „Excel“ programos ir skaityti failus naudojant patobulintas funkcijas.
Naudodami API galite sukurti darbaknygių stilių naudodami fono spalvą ir langelių apvadą. Galite pridėti, pašalinti ir perkelti darbalapius bei tvarkyti duomenų tipus programoje „Excel“.
Darbo su ClosedXML pradžia
Rekomenduojamas ClosedXML diegimo būdas yra iš NuGet. Norėdami greičiau įdiegti, naudokite šią komandą.
Įdiekite „ClosedXML“ iš „NuGet“.
Install-Package ClosedXML
Sukurkite naujas darbaknyges nemokamai naudodami C#
CLosedXML leidžia C# .NET kūrėjams kurti naujus Excel darbalapius. Galite sukurti tuščią darbaknygę naudodami XLWorkbook() metodą. Bibliotekoje yra keletas svarbių darbalapio dokumentų tvarkymo funkcijų. Tai leidžia pridėti darbalapių į darbaknygę, pridėti langelių ir stulpelių, pritaikyti stilius eilutėms ir stulpeliams, ištrinti nereikalingus langelius ir dar daugiau.
Kurkite naujas darbaknyges naudodami .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“ lapų stilius naudojant C#
Atvirojo kodo ClosedXML API leidžia programinės įrangos kūrėjams pritaikyti stilius savo „Excel“ lapams naudojant tik kelias C# kodo eilutes. API praturtinta stiliaus funkcijomis, įskaitant lygiavimą, kraštinę, užpildymą, šriftą, skaičių formatą, eilučių, stulpelių stilių ir kt. Biblioteka taip pat leidžia vartotojams keisti stilių pagal savo poreikius.
Kaip pritaikyti stilius „Excel“ lapams per C# biblioteką
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"));
Automatinių filtrų naudojimas programoje Excel naudojant C#
„ClosedXML“ biblioteka apima visišką filtrų taikymo „Excel“ darbalapiuose palaikymą. Naudotojo patogumui bibliotekoje yra įvairių tipų filtrai. Galite taikyti filtrą konkrečiam diapazonui, taikyti filtrą vertėms ir sukurti savo pasirinktinius filtrus.
Kaip taikyti automatinius filtrus „Excel“ naudojant 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();
}
}
}