کتابخانه منبع باز دات نت برای دستکاری صفحات گسترده اکسل
ClosedXML به شما امکان می دهد اسناد مایکروسافت اکسل را بخوانید، دستکاری و بنویسید
ClosedXML یک API C# منبع باز برای خواندن، دستکاری و نوشتن اسناد Microsoft Excel 2007+ (xlsx, .xlsm) است. API به شما امکان می دهد بدون استفاده از برنامه اکسل فایل های اکسل ایجاد کنید و با استفاده از ویژگی های پیشرفته فایل ها را بخوانید.
با استفاده از API میتوانید کتابهای کاری خود را با استفاده از رنگآمیزی پسزمینه و حاشیهسازی سلولها استایل دهید. می توانید کاربرگ های خود را اضافه، حذف و جابجا کنید و انواع داده ها را در اکسل مدیریت کنید.
شروع کار با ClosedXML
روش توصیه شده برای نصب ClosedXML از NuGet است، لطفاً برای نصب سریعتر از دستور زیر استفاده کنید.
ClosedXML را از NuGet نصب کنید
Install-Package ClosedXML
با استفاده از سی شارپ به صورت رایگان کتاب های کاری جدید ایجاد کنید
CLosedXML به توسعه دهندگان C#.NET اجازه می دهد تا کاربرگ های اکسل جدید ایجاد کنند. می توانید با استفاده از متد XLWorkbook () یک Workbook خالی ایجاد کنید. این کتابخانه دارای چندین ویژگی مهم برای مدیریت اسناد کاربرگ شما است. این اجازه می دهد تا کاربرگ ها را در کتاب کار خود اضافه کنید، سلول ها و ستون ها را اضافه کنید، استایل ها را در ردیف ها و ستون ها اعمال کنید، سلول های ناخواسته را حذف کنید و بسیاری موارد دیگر.
از طریق 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");
}
شیت های اکسل با استفاده از سی شارپ
API منبع باز ClosedXML به توسعه دهندگان نرم افزار این امکان را می دهد تا تنها با چند خط کد C#، استایل ها را در برگه های اکسل خود اعمال کنند. API با ویژگی های یک ظاهر طراحی شده از جمله تراز، حاشیه، پر کردن، فونت، قالب شماره، ردیف های استایل، ستون ها و موارد دیگر غنی شده است. این کتابخانه همچنین به کاربران این امکان را می دهد که سبک را مطابق با نیاز خود تغییر دهند.
نحوه اعمال سبک ها به برگه های اکسل از طریق کتابخانه سی شارپ
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"));
استفاده از فیلترهای خودکار در اکسل با استفاده از سی شارپ
کتابخانه ClosedXML دارای پشتیبانی کامل برای اعمال فیلترها در کاربرگ های اکسل شما است. این کتابخانه انواع فیلترها را برای راحتی کاربر در نظر گرفته است. شما می توانید فیلتر را در یک محدوده خاص اعمال کنید، یک فیلتر را روی مقادیر اعمال کنید و همچنین فیلترهای سفارشی خود را ایجاد کنید.
نحوه اعمال فیلترهای خودکار در اکسل از طریق سی شارپ
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();
}
}
}