Работа с Excel в C# (.NET): лучшие библиотеки и примеры
Работа с электронными таблицами Excel — одна из самых частых задач в корпоративной разработке на C#. Будь то генерация отчётов, импорт данных или автоматизация рутинных операций — вам понадобится надёжный инструмент. В этой статье мы разберём три популярные библиотеки для работы с Excel в экосистеме .NET: EPPlus, ClosedXML и NPOI. Вы узнаете их особенности, сильные стороны и увидите примеры кода.
1. EPPlus — мощный и современный инструмент
EPPlus — это одна из самых популярных библиотек для работы с файлами Excel (.xlsx) в .NET. Она поддерживает практически все возможности Excel: форматирование, диаграммы, сводные таблицы, условное форматирование и многое другое. Начиная с версии 5, EPPlus распространяется по лицензии Polyform Noncommercial (бесплатно для некоммерческого использования), для коммерции требуется покупка лицензии.
Установка
Install-Package EPPlus
Пример: создание простого Excel файла
using OfficeOpenXml;
class Program
{
static void Main()
{
// Устанавливаем лицензионный контекст (для некоммерческого использования)
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using (var package = new ExcelPackage())
{
var worksheet = package.Workbook.Worksheets.Add("Отчёт");
// Заголовки
worksheet.Cells["A1"].Value = "Имя";
worksheet.Cells["B1"].Value = "Возраст";
worksheet.Cells["C1"].Value = "Город";
// Данные
worksheet.Cells["A2"].Value = "Анна";
worksheet.Cells["B2"].Value = 28;
worksheet.Cells["C2"].Value = "Москва";
worksheet.Cells["A3"].Value = "Иван";
worksheet.Cells["B3"].Value = 35;
worksheet.Cells["C3"].Value = "Санкт-Петербург";
// Форматирование
worksheet.Cells["A1:C1"].Style.Font.Bold = true;
worksheet.Cells["A1:C1"].Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid;
worksheet.Cells["A1:C1"].Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.LightBlue);
// Автоширина колонок
worksheet.Cells.AutoFitColumns();
// Сохраняем
var file = new FileInfo("Отчёт.xlsx");
package.SaveAs(file);
}
}
}
Плюсы EPPlus:
- Поддержка сложных объектов: диаграммы, сводные таблицы, спарклайны
- Высокая производительность при работе с большими файлами
- Отличная документация и активное сообщество
Минусы: платная коммерческая лицензия, нет поддержки .xls (старый формат).
2. ClosedXML — простота и удобство
ClosedXML — это бесплатная библиотека с открытым исходным кодом, которая предоставляет удобный API для работы с Excel. Она построена на основе OpenXML SDK, но скрывает всю сложность, предлагая интуитивно понятный интерфейс. Идеально подходит для быстрого создания отчётов и таблиц.
Установка
Install-Package ClosedXML
Пример: создание файла с форматированием
using ClosedXML.Excel;
class Program
{
static void Main()
{
using (var workbook = new XLWorkbook())
{
var ws = workbook.Worksheets.Add("Продажи");
// Заголовки
ws.Cell("A1").Value = "Товар";
ws.Cell("B1").Value = "Количество";
ws.Cell("C1").Value = "Цена";
// Данные
ws.Cell("A2").Value = "Ноутбук";
ws.Cell("B2").Value = 5;
ws.Cell("C2").Value = 75000;
ws.Cell("A3").Value = "Мышь";
ws.Cell("B3").Value = 20;
ws.Cell("C3").Value = 1500;
// Форматирование заголовков
ws.Range("A1:C1").Style.Font.Bold = true;
ws.Range("A1:C1").Style.Fill.BackgroundColor = XLColor.LightGray;
// Формула для итога
ws.Cell("A4").Value = "Итого";
ws.Cell("C4").FormulaA1 = "=SUM(C2:C3)";
ws.Cell("C4").Style.Font.Bold = true;
// Автоширина
ws.Columns().AdjustToContents();
workbook.SaveAs("Продажи.xlsx");
}
}
}
Плюсы ClosedXML:
- Полностью бесплатный (MIT лицензия)
- Простой и чистый API