Как группировать данные в 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 с полностью настроенными умными маркерами
todo:image_alt_text
На втором листе дизайнера мы размещаем еще несколько умных маркеров, как показано на рисунке ниже. Мы размещаем следующие умные маркеры:
&=[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, отображающий смешанные умные маркеры.
todo:image_alt_text
Вот исходный код, используемый в примере.