Как группировать данные в Smart Markers
Возможные сценарии использования
В некоторых отчетах Excel может потребоваться разбить данные на группы для удобства их чтения и анализа. Одной из основных целей разделения данных на группы является выполнение расчетов (выполнение сводных операций) для каждой группы записей.
Умные маркеры Aspose.Cells позволяют группировать данные по полям и размещать строки итогов между наборами данных или группами данных. Например, если группировать данные по Customers.CustomerID, можно добавить строку итогов при каждом изменении группы.
Параметры группировки данных в Smart Markers
Ниже приведены некоторые параметры умного маркера, используемые для группировки данных.
group:normal/merge/repeat
Мы поддерживаем три типа групп, из которых вы можете выбрать.
- обычный - Значение поля(ей) группировки не повторяется для соответствующих записей в столбце; вместо этого они печатаются один раз для каждой группы данных.
- объединение - То же поведение, что и для параметра normal, за исключением того, что он объединяет ячейки в поле(ях) группировки для каждого набора групп.
- повтор - Значение поля(ей) группировки повторяется для соответствующих записей.
Например: &=Customers.CustomerID(group:merge)
skip
Пропускает указанное количество строк после каждой группы.
Например, &=Employees.EmployeeID(group:normal,skip:1)
subtotalN
Выполняет сводную операцию для указанных данных поля, связанных с полем группировки. N представляет собой числа от 1 до 11, которые указывают функцию, используемую при расчете промежуточных итогов в списке данных. (1=AVERAGE, 2=COUNT, 3=COUNTA, 4=MAX, 5=MIN,…9=SUM и т.д.) См. Справочник subtotal в справке Microsoft Excel для получения дополнительной информации.
Фактический формат указан как: subtotalN:Ref, где Ref относится к столбцу группировки.
Например,
- &=Products.Units(subtotal9:Products.ProductID) указывает функцию итогов для поля Units относительно поля ProductID в таблице Products.
- &=Tabx.Col3(subtotal9:Tabx.Col1) указывает функцию итогов для поля Col3 с группировкой по Col1 в таблице Tabx.
- &=Table1.ColumnD(subtotal9:Table1.ColumnA&Table1.ColumnB) указывает функцию итогов для поля ColumnD группируется по ColumnA и ColumnB в таблице Table1.
Как группировать данные в Smart Markers
В этом примере показано некоторые из параметров группировки в действии. Он использует базу данных Microsoft Access Northwind.mdb и извлекает данные из таблицы с именем “Order Details”. Мы создаем файл дизайнера с именем SmartMarker_Designer.xls в Microsoft Excel и размещаем умные маркеры в различные ячейки на листах. Маркеры обрабатываются для заполнения листов. Данные размещаются и организуются по полю группы.
В файле дизайнера два листа. На первом мы размещаем умные маркеры с параметрами группировки, как показано на скриншоте ниже. Три умных маркера (с параметрами группировки) размещены: &=[Order Details].OrderID(group:merge,skip:1), &=[Order Details].Quantity(итого9:Order Details.OrderID), и &=[Order Details].UnitPrice(итого9:Order Details.OrderID) помещаются в A5, B5 и C5 соответственно.
| Первый лист в файле SmartMarker_Designer.xls с полностью настроенными умными маркерами |
|---|
![]() |
| На втором листе дизайнера мы размещаем еще несколько умных маркеров, как показано на рисунке ниже. Мы размещаем следующие умные маркеры: |
| &=[Order Details].OrderID(group:normal), |
| &=[Order Details].Quantity, |
| &=[Order Details].UnitPrice, |
| &=&=B(r)*C(r), и |
| &=итого9:Order Details.OrderID в A5, B5, C5, D5 и C6 соответственно. |
| Второй лист файла SmartMarker_Designer.xls, отображающий смешанные умные маркеры. |
|---|
![]() |
| Вот исходный код, используемый в примере. |

