Параметры Smart Marker
Дизайнерский электронный таблица и умные маркеры
Дизайнерские электронные таблицы - стандартные файлы Excel, которые содержат визуальное форматирование, формулы и умные маркеры. Они могут содержать умные маркеры, ссылки на один или несколько источников данных, такие как информация из проекта и информация о связанных контактах. Умные маркеры записываются в ячейки, в которых нужна информация.
Все умные маркеры начинаются с &=. Примером маркера данных является &=Party.FullName. Если результат маркера данных содержит более одного элемента, например, полную строку, то следующие строки автоматически сдвигаются вниз, чтобы освободить место для новой информации. Таким образом, промежуточные и итоговые итоги могут быть размещены на строке, следующей сразу после маркера данных, чтобы делать вычисления на основе вставленных данных. Для вычислений по вставленным строкам используйте динамические формулы.
Умные маркеры состоят из частей источник данных и название поля для большинства информации. Специальная информация также может передаваться с помощью переменных и массивов переменных. Переменные всегда заполняют только одну ячейку, в то время как массивы переменных могут заполнять несколько. Используйте только один маркер данных на ячейку. Неиспользуемые умные маркеры удаляются.
Умный маркер также может содержать параметры. Параметры позволяют изменить способ представления информации. Они добавляются в конец умного маркера в круглых скобках в виде списка, разделенного запятыми.
Параметры умного маркера
&=DataSource.FieldName
&=[Data Source].[Field Name]
&=$VariableName
&=$VariableArray
&==DynamicFormula
&=&=RepeatDynamicFormula
Параметры Smart Marker
Допустимы следующие параметры:
- noadd - Не добавлять дополнительные строки для помещения данных.
- skip:n - Пропустить n количество строк для каждой строки данных.
- ascending:n или descending:n - Сортировать данные в умных маркерах. Если n равно 1, то столбец является первым ключом сортировки. Данные сортируются после обработки источника данных. Например: &=Таблица1.Поле3(ascending:1).
- horizontal - Записывать данные слева направо, а не сверху вниз.
- numeric - Преобразовать текст в число, если это возможно.
- shift - Сдвиг вниз или вправо, создание дополнительных строк или столбцов для данных. Параметр сдвига работает так же, как в Microsoft Excel. Например, в Microsoft Excel, когда вы выделяете диапазон ячеек, щелкаете правой кнопкой мыши и выбираете Вставка и указываете сдвинуть ячейки вниз, сдвинуть ячейки вправо и другие параметры. В сокращенной форме параметр shift выполняет ту же функцию для вертикального/нормального (сверху вниз) или горизонтального (слева направо) умных маркеров.
- copystyle - Скопировать стиль базовой ячейки во все ячейки этого столбца.
Параметры noadd и skip могут быть объединены для вставки данных на чередующиеся строки. Так как шаблон обрабатывается сверху вниз, вы должны добавить noadd на первой строке, чтобы избежать вставки лишних строк перед чередующейся строкой.
Если у вас есть несколько параметров, разделите их запятыми, но без пробела: параметрА,параметрB,параметрC
На следующих скриншотах показано, как вставить данные на каждую вторую строку.
| Файл шаблона | Файл вывода |
|---|---|
![]() |
![]() |
Динамические формулы
Динамические формулы позволяют вставлять формулы Excel в ячейки, даже когда формула ссылается на строки, которые будут вставлены во время процесса экспорта. Динамические формулы могут повторяться для каждой вставленной строки или использовать только ячейку, где размещен маркер данных.
Динамические формулы позволяют использовать следующие дополнительные параметры:
- r - Номер текущей строки.
- 2, -1 - Смещение к текущему номеру строки.
Например:
&=&=B{-1}/C{-1}~(skip:1)В маркере динамической формулы “-1” обозначает смещение к текущей строке в столбцах B и C соответственно, которые будут установлены для операции деления, параметр пропуска - одна строка. Более того, мы должны указать следующий символ:
"~"как разделительный символ для применения дополнительных параметров в динамических формулах.
Следующие скриншоты иллюстрируют повторяющуюся динамическую формулу и результат на листе Excel.
| Файл шаблона | Файл вывода |
|---|---|
![]() |
![]() |
| Ячейка “C1” содержит формулу = A1*B1, ячейка “C2” содержит = A2*B2 и ячейка “C3” содержит = A3*B3. |
Очень легко обрабатывать умные маркеры. Приведенный ниже пример кода показывает, как использовать динамические формулы в умных маркерах. Мы загружаем файл шаблона и создаем тестовые данные, обрабатываем маркеры для заполнения данных в ячейках по маркерам.
Как использовать динамические формулы и переменные в SmartMarkers
Иногда необходимо использовать динамические формулы и переменные в SmartMarkers. Для динамических формул добавьте специальный символ (~) в качестве разделителя. Aspose.Cells позволяет использовать динамические формулы и переменные в SmartMarkers. Пожалуйста, ознакомьтесь с шаблонным файлом, json файлом и скриншотом сгенерированного выходного файла Excel с помощью следующего кода.
| Первый лист файла template.xlsx, показывающий переменные. |
|---|
![]() |
| Второй лист файла template.xlsx, показывающий smart markers. |
|---|
![]() |
| Скриншот выходного файла Excel. |
|---|
![]() |
Следующие данные JSON:
{
"RootData": {
"Directors": [
{
"FirstName": "director first 1",
"id": "director id 1",
"LastName": "director last 1",
"MiddleName": "director middle 1",
"Reportees": [
{
"City": "aaa city",
"Department": "aaa department",
"FirstName": "first aaa",
"GST": "Yes",
"id": "aaa",
"ITR": "No",
"LastName": "last aaa",
"MiddleName": "middle aaa"
},
{
"City": "bbb city",
"Department": "bbb department",
"FirstName": "first bbb",
"GST": "Yes",
"id": "bbb",
"ITR": "Yes",
"LastName": "last bbb",
"MiddleName": "middle bbb"
},
{
"City": "ccc city",
"Department": "ccc department",
"FirstName": "first ccc",
"GST": "No",
"id": "ccc",
"ITR": "No",
"LastName": "last ccc",
"MiddleName": "middle ccc"
},
{
"City": "ddd city",
"Department": "ddd department",
"FirstName": "first ddd",
"GST": "No",
"id": "ddd",
"ITR": "No",
"LastName": "last ddd",
"MiddleName": "middle ddd"
},
{
"City": "eee city",
"Department": "eee department",
"FirstName": "first eee",
"GST": "No",
"id": "eee",
"ITR": "No",
"LastName": "last eee",
"MiddleName": "middle eee"
}
]
},
{
"FirstName": "director first 2",
"id": "director id 2",
"LastName": "director last 2",
"MiddleName": "director middle 2",
"Reportees": [
{
"City": "eee city",
"Department": "eee department",
"FirstName": "first eee",
"GST": "Yes",
"id": "eee",
"ITR": "No",
"LastName": "last eee",
"MiddleName": "middle eee"
},
{
"City": "fff city",
"Department": "fff department",
"FirstName": "first fff",
"GST": "No",
"id": "fff",
"ITR": "No",
"LastName": "last fff",
"MiddleName": "middle fff"
}
]
}
],
"DOB": "2025-02-28",
"EntityCin": "EntityCin Test",
"EntityName": "EntityName Test",
"FirstName": "FirstName Test",
"LastName": "LastName Test",
"MiddleName": "MiddleName Test",
"SSN": "11111111",
"CtcPerEmployee": 100000,
"CountOfEmployees": 132
}
}
Приведенный ниже пример показывает, как это работает.






