Использование Умных Маркеров

Введение

Дизайнерский электронный таблица и умные маркеры

Дизайнерские таблицы - это стандартные файлы Excel, содержащие визуальное форматирование, формулы и умные маркеры. Они могут содержать умные маркеры, которые ссылается на один или несколько источников данных, таких как информация о проекте и информация о связанных контактах. Умные маркеры вписываются в ячейки, где вы хотите разместить информацию.

Все умные маркеры начинаются с &=. Примером маркера данных является &=Party.FullName. Если маркер данных дает более одного элемента, например, полную строку, тогда следующие строки автоматически смещаются вниз, чтобы освободить место для новой информации. Таким образом, итоги и промежуточные итоги могут быть помещены на строку сразу после маркера данных для выполнения вычислений на основе вставленных данных. Чтобы провести вычисления на вставленных строках, используйте динамические формулы.

Умные маркеры состоят из частей источник данных и название поля для большинства информации. Специальная информация также может передаваться с помощью переменных и массивов переменных. Переменные всегда заполняют только одну ячейку, в то время как массивы переменных могут заполнять несколько. Используйте только один маркер данных на ячейку. Неиспользуемые умные маркеры удаляются.

Умный маркер также может содержать параметры. Параметры позволяют вам изменить расположение информации. Они добавляются в конец умного маркера в качестве списка, разделенного запятой в скобках.

Параметры умного маркера

&=ИсточникДанных.ИмяПоля &=[Источник Данных].[Имя Поля] &=$ИмяПеременной &=$МассивПеременных &==ДинамическаяФормула &=&=ПовторитьДинамическуюФормулу

Параметры

Допустимы следующие параметры:

  • noadd - Не добавлять дополнительные строки для помещения данных.
  • skip:n - Пропустить n количество строк для каждой строки данных.
  • *ascending:n or descending:n - Сортировать данные в смарт-элементах. Если n равно 1, то столбец будет первым ключом сортировщика. Данные сортируются после обработки источника данных. Например: &=Table1.Field3(ascending:1).
  • horizontal - Записывать данные слева направо, а не сверху вниз.
  • numeric - Преобразовать текст в число, если это возможно.
  • shift - Сдвигать вниз или вправо, создавая дополнительные строки или столбцы для размещения данных.
  • bean - Указывает, что источник данных - простой POJO. Поддерживается только в Java API.

Параметры noadd и skip могут быть объединены для вставки данных на чередующиеся строки. Поскольку шаблон обрабатывается снизу вверх, вам следует добавить noadd на первой строке, чтобы избежать добавления лишних строк перед чередующейся строкой.

Если у вас есть несколько параметров, разделите их запятой, но без пробела: параметрA,параметрB,параметрC

На следующих скриншотах показано, как вставить данные на каждую вторую строку.

todo:image_alt_text

становится…

todo:image_alt_text

Динамические формулы

Динамические формулы позволяют вставлять формулы Excel в ячейки, даже когда формула ссылается на строки, которые будут вставлены во время процесса экспорта. Динамические формулы могут повторяться для каждой вставленной строки или использовать только ячейку, где размещен маркер данных.

Динамические формулы позволяют использовать следующие дополнительные параметры:

  • r - Номер текущей строки.
  • 2, -1 - Смещение к текущему номеру строки.

Ниже приведен пример повторяющейся динамической формулы и результирующего листа Excel.

todo:image_alt_text

становится…

todo:image_alt_text

Ячейка C1 содержит формулу =A1B1, C2 содержит = A2B2, а C3 = A3*B3.

Очень легко обрабатывать умные маркеры. Приведенный ниже пример кода показывает, как использовать динамические формулы в умных маркерах. Мы загружаем файл шаблона и создаем тестовые данные, обрабатываем маркеры для заполнения данных в ячейках по маркерам.

Использование переменных массивов

Приведен пример кода, показывающий, как использовать переменные массивы в умных маркерах. Мы размещаем маркер переменного массива в ячейке A1 первого листа книги Excel динамически, которая содержит строку значений, которые мы устанавливаем для маркера, обрабатываем маркеры для заполнения данных в ячейках по маркерам. Наконец, мы сохраняем файл Excel.

Группировка данных

В некоторых отчетах Excel может потребоваться разбить данные на группы для удобства их чтения и анализа. Одной из основных целей разделения данных на группы является выполнение расчетов (выполнение сводных операций) для каждой группы записей.

Умные маркеры Aspose.Cells позволяют группировать данные в соответствии с заданными полями и размещать итоговые строки между наборами данных или группами данных. Например, если данные группируются по Customers.CustomerID, можно добавить итоговую запись каждый раз при изменении группы.

Параметры

Ниже приведены некоторые параметры умных маркеров, используемые для группировки данных.

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.

Использование вложенных объектов

Aspose.Cells поддерживает вложенные объекты в интеллектуальных маркерах, вложенные объекты должны быть простыми.

Мы используем простой файл шаблона. См. Дизайнерский электронный лист, который содержит некоторые вложенные интеллектуальные маркеры.

Первый лист дизайнерского файла, показывающий вложенные умные маркеры.

todo:image_alt_text

Приведенный ниже пример показывает, как это работает. Запуск кода ниже приводит к следующему выводу.

Первый лист выходного файла, показывающий полученные данные.

todo:image_alt_text

Использование обобщенного списка в качестве вложенного объекта

Aspose.Cells теперь также поддерживает использование обобщенного списка в качестве вложенного объекта. Пожалуйста, проверьте снимок экрана выходного excel-файла, сгенерированного следующим кодом. Как вы можете видеть на снимке экрана, объект Teacher содержит несколько вложенных объектов Student.

todo:image_alt_text

Использование свойства HTML умных маркеров

The following sample code explains the use of the HTML property of the Smart Markers. When it will be processed, it will show “World” in “Hello World” as bold because of HTML <b> tag.

Получение уведомлений во время слияния данных с умными маркерами

Иногда может потребоваться получать уведомления о ссылке на ячейку или о конкретном умном маркере, который обрабатывается до завершения. Это можно достичь, используя свойство WorkbookDesigner.CallBack и ISmartMarkerCallBack

Для примера кода и подробного объяснения, пожалуйста, обратитесь к этой статье.