Avoimen lähdekoodin .NET-kirjasto Excel-laskentataulukoiden käsittelyyn
ClosedXML:n avulla voit lukea, käsitellä ja kirjoittaa Microsoft Excel -asiakirjoja
ClosedXML on avoimen lähdekoodin C# API Microsoft Excel 2007+ (.xlsx, .xlsm) asiakirjojen lukemiseen, käsittelyyn ja kirjoittamiseen. API:n avulla voit luoda Excel-tiedostoja ilman Excel-sovellusta ja lukea tiedostoja parannettujen ominaisuuksien avulla.
Sovellusliittymän avulla voit muokata työkirjojasi käyttämällä taustaväriä ja solujen reunuksia. Voit lisätä, poistaa ja siirtää laskentataulukoita ja hallita tietotyyppejä Excelissä.
ClosedXML:n käytön aloittaminen
Suositeltu tapa asentaa ClosedXML on NuGet. Käytä seuraavaa komentoa nopeuttaaksesi asennusta.
Asenna ClosedXML NuGetistä
Install-Package ClosedXML
Luo uusia työkirjoja ilmaiseksi C#:lla
CLosedXML:n avulla C#.NET-kehittäjät voivat luoda uusia Excel-laskentataulukoita. Voit luoda tyhjän työkirjan XLWorkbook()-menetelmällä. Kirjastossa on useita tärkeitä ominaisuuksia laskentataulukkoasiakirjojen hallintaan. Sen avulla voit lisätä laskentataulukoita työkirjaasi, lisätä soluja ja sarakkeita, soveltaa tyylejä riveihin ja sarakkeisiin, poistaa ei-toivottuja soluja ja paljon muuta.
Luo uusia työkirjoja .NET API:n kautta
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");
}
Tyyli Excel-taulukot C#:lla
Avoimen lähdekoodin ClosedXML API antaa ohjelmistokehittäjille mahdollisuuden soveltaa tyylejä Excel-taulukoihinsa vain muutamalla rivillä C#-koodia. API on rikastettu tyyliominaisuuksilla, kuten tasaus, reunus, täyttö, kirjasin, numeromuoto, rivien, sarakkeiden muotoilu ja paljon muuta. Kirjastossa käyttäjät voivat myös muuttaa tyyliä tarpeidensa mukaan.
Kuinka käyttää tyylejä Excel-taulukoihin C#-kirjaston kautta
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"));
Automaattisten suodattimien käyttäminen Excelissä C#:lla
ClosedXML-kirjastossa on täydellinen tuki suodattimien käyttämiselle Excel-laskentataulukoissa. Kirjasto on sisältänyt erilaisia suodattimia käyttäjien avuksi. Voit käyttää suodatinta tietylle alueelle, käyttää suodatinta arvoihin ja luoda myös omia mukautettuja suodattimia.
Automaattisten suodattimien käyttäminen Excelissä C#:n kautta
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();
}
}
}