مكتبة مفتوحة المصدر. NET لمعالجة جداول بيانات Excel
يتيح لك ClosedXML قراءة مستندات Microsoft Excel ومعالجتها وكتابتها
ClosedXML هو واجهة برمجة تطبيقات C # مفتوحة المصدر لقراءة مستندات Microsoft Excel 2007+ (.xlsx ، .xlsm) ومعالجتها وكتابتها. تسمح لك واجهة برمجة التطبيقات بإنشاء ملفات Excel دون استخدام تطبيق Excel ، وقراءة الملفات باستخدام الميزات المحسنة.
باستخدام API ، يمكنك تصميم المصنفات الخاصة بك باستخدام تلوين الخلفية وحدود الخلية. يمكنك إضافة أوراق العمل الخاصة بك وإزالتها ونقلها وإدارة أنواع البيانات داخل برنامج Excel.
الشروع في العمل مع ClosedXML
الطريقة الموصى بها لتثبيت ClosedXML هي من NuGet ، يرجى استخدام الأمر التالي للتثبيت بشكل أسرع.
قم بتثبيت ClosedXML من NuGet
Install-Package ClosedXML
إنشاء مصنفات جديدة مجانًا باستخدام C #
يتيح CLosedXML لمطوري C # .NET إنشاء أوراق عمل Excel جديدة. يمكنك إنشاء مصنف فارغ باستخدام طريقة 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 #
تتيح واجهة OpenXML API مفتوحة المصدر لمطوري البرامج تطبيق الأنماط على أوراق Excel الخاصة بهم باستخدام سطرين فقط من كود C #. تم إثراء واجهة برمجة التطبيقات بميزات التصميم بما في ذلك المحاذاة والحدود والتعبئة والخط وتنسيق الأرقام وصفوف التصميم والأعمدة والمزيد. تتيح المكتبة أيضًا للمستخدمين تغيير التصميم وفقًا لاحتياجاتهم.
كيفية تطبيق الأنماط على أوراق Excel عبر مكتبة 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 الخاصة بك. تضمنت المكتبة أنواعًا مختلفة من المرشحات لراحة المستخدم. يمكنك تطبيق عامل التصفية على نطاق معين ، وتطبيق عامل تصفية على القيم وإنشاء عوامل التصفية المخصصة الخاصة بك أيضًا.
كيفية تطبيق المرشحات التلقائية في 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();
}
}
}