Группировка
Для выполнения группировки и создания промежуточных итогов по столбцам в 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>>
- запрещает создание всех общих итогов при использовании группировки области с промежуточными итогами