Базовые сущности
Шаблоны
Все работы по созданию отчета основаны на шаблонах (XLSX-шаблоны) - книги Excel, содержащей описание формы отчета, а также опций для книг, листов и областей отчетов. Специальные формулы полей и области данных описывают данные в структуре отчета, которые вы хотите перенести в Excel. ClosedXML.Report вызовет шаблон и заполнит ячейки отчета данными из указанных наборов.
Переменные
Значения, переданные в ClosedXML.Report с помощью метода AddVariable
, называются переменными. Они используются для вычисления выражений, используемых в шаблонах. Переменные могут быть добавлены с именем или без него. Если переменная была добавлена без имени, то все общедоступные поля и свойства этого экземпляра будут добавлены как переменные с их именами.
Примеры:
template.AddVariable(cust);
или
template.AddVariable("Customer", cust);
.
Выражения
Выражения заключаются в двойные фигурные скобки {{}}
. Используется синтаксис, аналогичный C#. Поддерживаются лямбда-выражения.
Примеры:
{{item.Product.Price * item.Product.Quantity}}
{{items.Where(i => i.Currency == "RUB").Count()}}
Тэги
ClosedXML.Report имеет ряд встроенных возможностей, которые позволяют спрятать лист, отсортировать полученную область, получить итоги по ее колонкам, сгруппировать область и др. Эти дополнительные действия можно вызвать, дополнив книгу-шаблон тэгами книги, листа, области или строк/столбцов. Тэг – это строковое значение, заключённое в двойные угловые скобки и понятное анализатору ClosedXML.Report. Эти тэги помогут вам получить промежуточные итоги, включить автофильтр, создать сводные таблицы по области и др. У тегов могут быть параметры для настройки их поведения. Параметры могут требовать указать их значения. В этом случае, имя параметра отделяется от значения знаком «равно».
Все тэги могут относиться к шести объектам отчета: отчет, лист, столбец, строка, область, столбец области. Тэги отчета указываются в ячейке A1 любого листа шаблона. Тэги листа указываются в ячейке A2 на листе. Тэги столбца указываются в первой строке листа. Тэги строки указываются в первом столбце листа. Тэги области указываются в крайней слева ячейке служебной строки этой области. Тэги столбца области указываются в ячейке этого столбца в служебной строке области.
Пример: <<Range horizontal>>
.
Список всех тэгов вы можете найти на странице Тэги
Области
Для представления значений IEnumerable используются именованные области Excel. Подробнее см. раздел Плоские таблицы