1. منتجات
  2.   جدول
  3.   .NET
  4.   ClosedXML
 
  

مكتبة مفتوحة المصدر. NET لمعالجة جداول بيانات Excel

يتيح لك ClosedXML قراءة مستندات Microsoft Excel ومعالجتها وكتابتها

ClosedXML هو واجهة برمجة تطبيقات C # مفتوحة المصدر لقراءة مستندات Microsoft Excel 2007+ (.xlsx ، .xlsm) ومعالجتها وكتابتها. تسمح لك واجهة برمجة التطبيقات بإنشاء ملفات Excel دون استخدام تطبيق Excel ، وقراءة الملفات باستخدام الميزات المحسنة.

باستخدام API ، يمكنك تصميم المصنفات الخاصة بك باستخدام تلوين الخلفية وحدود الخلية. يمكنك إضافة أوراق العمل الخاصة بك وإزالتها ونقلها وإدارة أنواع البيانات داخل برنامج Excel.

Previous Next

الشروع في العمل مع 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();
            }
        }
    }
 عربي