Группировка
Для выполнения группировки и создания промежуточных итогов по столбцам в ClosedXML.Report присутствует тэг <<group>>. Предварительно область сортируется по всем столбцам, для которых указаны тэги <<group>>, <<sort>>, <<desc>> и <<asc>>. Порядок сортировки для опции <<group>> указывается дополнительным параметром - <<desc>> или <<asc>> (asc по умолчанию). По умолчанию (без применения доп. опций) работа тэга <<group>> подобна работе метода Subtotal объекта Range в Excel. В случае, если тэг <<group>> указан для нескольких столбцов, промежуточные итоги группируются по всем этим столбцам. Группировка происходит справа налево, то есть сначала итоги группируются по крайнему справа столбцу, для которого указан тэг <<group>>, затем по столбцу с тэгом <<group>> слева от него и т.д. Для форматирования строк промежуточных итогов используется форматирование служебной строки области. После создания промежуточных итогов служебная строка удаляется из области.
Для получения подитогов вы можете использовать агрегационные тэги в соответствующих столбцах:
<<Sum>>– отобразит сумму по столбцу;<<Count>>– количество значений в столбцу;<<CountNums>>– количество не пустых значений в столбце;<<Avg>>или<<Average>>– среднее значение по столбцу;<<Max>>– максимальное значение в столбце;<<Min>>– минимальное значение в столбце;<<Product>>- произведение по столбце;<<StDev>>- стандартное отклонение;<<StDevP>>- стандартное отклонение по генеральной совокупности;<<Var>>– дисперсия;<<VarP>>- дисперсия для генеральной совокупности.
Для изменения поведения, тэг <<group>> имеет ряд опций:
- Collapse - вызывает сворачивание промежуточных итогов до уровня, на котором расположен тэг
<<group>>с этим параметром. - MergeLabels=[Merge1|Merge2|Merge3] - вызывает объединение ячеек группы в группируемом столбце
- PlaceToColumn=n - позволяет указать столбец, в который будет помещен заголовок группы
- WithHeader - позволяет создавать заголовок группы при использовании промежуточных итогов
- Disablesubtotals - позволяет отключить создание промежуточных итогов для столбца
- DisableOutline - выключает создание Outline view для группируемого столбца
- PageBreaks - позволяет поместить каждую группу на отдельную страницу
- TotalLabel - позволяет задать текст подписи в строке подитогов (по умолчанию: ‘Total’)
- GrandLabel - позволяет задать текст подписи в строке общих итогов (по умолчанию: ‘Grand’)
Так же для изменения поведения группировки имееются тэги области:
<<SummaryAbove>>- в случае если в области обнаружен тэг<<SummaryAbove>>, промежуточные итоги размещаются над данными<<DisableGrandTotal>>- запрещает создание всех общих итогов при использовании группировки области с промежуточными итогами