Бібліотека .NET з відкритим кодом для роботи з електронними таблицями Excel

ClosedXML дозволяє читати, маніпулювати та записувати документи Microsoft Excel

ClosedXML — це API C# з відкритим кодом для читання, обробки та запису документів Microsoft Excel 2007+ (.xlsx, .xlsm). API дозволяє створювати файли Excel без використання програми Excel і читати файли за допомогою розширених функцій.

Використовуючи API, ви можете стилізувати свої робочі книги, використовуючи колір фону та межі клітинок. Ви можете додавати, видаляти та переміщувати робочі аркуші та керувати типами даних у Excel.

Previous Next

Початок роботи з ClosedXML

Рекомендований спосіб встановлення ClosedXML — це NuGet. Для швидшого встановлення використовуйте наступну команду.

Встановіть ClosedXML з NuGet

 Install-Package ClosedXML

Створюйте нові книги безкоштовно за допомогою C#

CLOSedXML дозволяє розробникам C# .NET створювати нові робочі аркуші Excel. Ви можете створити порожній Cookbook за допомогою методу 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 дозволяє розробникам програмного забезпечення застосовувати стилі до своїх таблиць Excel за допомогою лише кількох рядків коду C#. API збагачено функціями стилю, включаючи вирівнювання, рамку, заливку, шрифт, формат чисел, стиль рядків, стовпців тощо. Бібліотека також дозволяє користувачам змінювати стиль відповідно до своїх потреб.

Як застосувати стилі до аркушів 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#

Русский EnglishРусскийУкраїнськаPolskiItalianoEspañol汉语Bahasa Indonesiaहिन्दीPortuguês日本語DeutschFrançaisภาษาไทยελληνικά اللغة العربية Бібліотека включено різні типи фільтрів для зручності користувачів. Ви можете застосувати фільтр до певного діапазону, нанести фільтр до значень і створювати власні спеціальні фільтри.

Як застосувати Автофільтри в 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();
            }
        }
    }
 Українська