.NET библиотека с отворен код за манипулиране на електронни таблици на Excel
ClosedXML ви позволява да четете, манипулирате и пишете Microsoft Excel документи
ClosedXML е C# API с отворен код за четене, манипулиране и писане на Microsoft Excel 2007+ (.xlsx, .xlsm) документи. API ви позволява да създавате Excel файлове, без да използвате приложението Excel, и да четете файлове с помощта на подобрените функции.
С помощта на API можете да стилизирате вашите работни книги, като използвате оцветяване на фона и граници на клетки. Можете да добавяте, премахвате и премествате вашите работни листове и да управлявате типове данни в excel.
Първи стъпки с ClosedXML
Препоръчителният начин за инсталиране на ClosedXML е от NuGet. Моля, използвайте следната команда за по-бързо инсталиране.
Инсталирайте ClosedXML от NuGet
Install-Package ClosedXML
Създавайте нови работни книги безплатно с помощта на C#
CLosedXML позволява на разработчиците на C.NET да създават нови отлични работни листове. Можете да създадете бяла готварска книга с помощта на метода XLWorkbook(). Библиотеката включва няколко важни функции за управление на вашите документи за работен лист. Тя позволява да добавяте работни листове в готварската си книга, да добавяте клетки и колони, да прилагате стилове към редове и колони, да изтривате нежеланите клетки и много други.
Създаване на нови бисквитки чрез .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 с помощта на C#
Отвореният източник ClosedXML API дава възможност на разработчиците на софтуер да прилагат стилове към своите отлични листове само с няколко реда C код. API е обогатен със стилистични функции, включително подравняване, граница, запълване, шрифт, формат на номера, стилни редове, колони и др. Библиотеката също така позволява на потребителите да променят стила си според техните нужди.
Как да приложите стилове към Excel Sheets чрез 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"));
Използване на автоматични филтри в Excel с помощта на C#
ClosedXML библиотека включва пълна поддръжка за прилагане на филтри във вашите ексел работни листове. Библиотеката включва различни видове филтри за удобство на потребителя. Можете да приложите филтъра към определен диапазон, да приложите филтър към стойности и да създадете свои собствени потребителски филтри.
Как да прилагате авто филтри в Excel чрез 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();
}
}
}