Умный импорт и размещение данных с помощью интеллектуальных маркеров

Вступление

Умные маркерыиспользуются, чтобы сообщить Aspose.Cells, какую информацию помещать в электронную таблицу конструктора Excel Microsoft. Смарт-маркеры позволяют создавать шаблоны, содержащие только определенную информацию и форматирование.

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

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

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

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

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

Параметры смарт-маркера

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

Параметры

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

  • не добавить - Не добавляйте дополнительные строки для соответствия данным.
  • пропустить:н - Пропустить n строк для каждой строки данных.
  • по возрастанию: п или жепо убыванию: п - Сортировка данных в смарт-маркерах. Если n равно 1, то столбец является первым ключом сортировщика. Данные сортируются после обработки источника данных. Например: &=Таблица1.Поле3(по возрастанию:1).
  • горизонтальный - Записывайте данные слева направо, а не сверху вниз.
  • числовой - Преобразование текста в число, если это возможно.
  • сдвиг - Сдвиг вниз или вправо, создание дополнительных строк или столбцов для соответствия данным. Параметр сдвига работает так же, как и в Microsoft Excel. Например, в Microsoft Excel при выборе диапазона ячеек щелкните правой кнопкой мыши и выберитеВставлять и указатьсдвинуть ячейки вниз, сдвинуть ячейки вправо и другие варианты. Короче говоря,сдвиг Параметр выполняет ту же функцию для вертикальных/нормальных (сверху вниз) или горизонтальных (слева направо) интеллектуальных маркеров.
  • копистайл - Скопируйте стиль базовой ячейки во все ячейки в этом столбце.

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

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

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

Файл шаблона Выходной файл
дело:изображение_альтернативный_текст дело:изображение_альтернативный_текст

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

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

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

  • r - Текущий номер строки.
  • 2, -1 — смещение до текущего номера строки.

Например:

 &=&=B{-1}/C{-1}~(skip:1)

В маркере динамической формулы «-1» обозначает смещение к текущей строке в столбцах B и C соответственно, которое будет установлено для операции деления, параметр пропуска равен одной строке. Кроме того, мы должны указать следующий символ:

 "~"

в качестве символа-разделителя для применения дополнительных параметров в динамических формулах.

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

Файл шаблона Выходной файл
дело:изображение_альтернативный_текст дело:изображение_альтернативный_текст
Cell “C1” содержит формулу**= А1*В1** , ячейка “C2” содержит**= А2*В2** а ячейка “C3” содержит**= А3*В3**.

Обрабатывать умные маркеры очень легко. Далее следуют два фрагмента кода, один на C# и один на VB, которые показывают, как это делается.

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

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

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

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

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

Параметры

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

группа:нормальная/объединить/повторить

Мы поддерживаем три типа групп, которые вы можете выбрать.

  • нормальный - группировка по значению поля (полей) не повторяется для соответствующих записей в столбце; вместо этого они печатаются один раз для каждой группы данных.
  • сливаться - То же поведение, что и для обычного параметра, за исключением того, что он объединяет ячейки в группе по полям для каждого набора групп.
  • повторение - Группа по значению поля (полей) повторяется для соответствующих записей.

Например: &=Customers.CustomerID(группа:объединить)

пропускать

Пропускает указанное количество строк после каждой группы.

Например, &=Employees.EmployeeID(group:normal,skip:1)

промежуточный итогN

Выполняет операцию суммирования для данных указанного поля, связанных с группой по полю. N представляет числа от 1 до 11, которые определяют функцию, используемую при расчете промежуточных итогов в списке данных. (1 = СРЕДНЕЕ, 2 = СЧЁТ, 3 = СЧЁТ, 4 = МАКС, 5 = МИН,… 9 = СУММА и т. д.) Дополнительную информацию см. в справке по промежуточному итогу в Microsoft Excel.

Формат фактически гласит: subtotalN:Ref, где Ref относится к группе по столбцу.

Например,

  • &=Products.Units(subtotal9:Products.ProductID) определяет итоговую функцию приЕдиницы измерения поле по отношению кКод товара поле вПродукты Таблица.
  • &=Tabx.Col3(subtotal9:Tabx.Col1) указывает итоговую функцию приКол3 группа полей поКол1 в таблицеТабкс.
  • &=Table1.ColumnD(subtotal9:Table1.ColumnA&Table1.ColumnB) определяет итоговую функцию приСтолбецD группа полей поСтолбец А иСтолбец B в таблицеТаблица 1.

В этом примере показаны некоторые параметры группировки в действии. Он использует базу данных доступа Northwind.mdb Microsoft и извлекает данные из таблицы с именем «Сведения о заказе». Мы создаем файл конструктора с именем SmartMarker_Designer.xls в Microsoft Excel и помещаем смарт-маркеры в различные ячейки рабочих листов. Маркеры обрабатываются для заполнения рабочих листов. Данные размещаются и организуются по групповому полю.

Файл конструктора состоит из двух рабочих листов. В первую ставим умные маркеры с параметрами группировки, как показано на скриншоте ниже. Размещаются три смарт-маркера (с параметрами группировки): &=[Сведения о заказе].OrderID(группа:объединить,пропустить:1), &=[Сведения о заказе].Количество(промежуточный итог9:Сведения о заказе.Идентификатор заказа) и &=[Детали заказа].UnitPrice(subtotal9:Детали заказа.OrderID) входят в A5, B5 и C5 соответственно.

Первый рабочий лист в файле SmartMarker_Designer.xls со смарт-маркерами.
дело:изображение_альтернативный_текст
На втором рабочем листе файла конструктора мы поместили еще несколько умных маркеров, как показано на рисунке ниже. Размещаем следующие умные маркеры:
&=[Детали заказа].OrderID(group:normal),
&=[Сведения о заказе].Количество,
&=[Сведения о заказе].UnitPrice,
&=&=B(r)*C(r), и
&=subtotal9:Order Details.OrderID в A5, B5, C5, D5 и C6 соответственно.
Второй рабочий лист файла SmartMarker_Designer.xls, показывающий смешанные смарт-маркеры.
дело:изображение_альтернативный_текст
Вот исходный код, используемый в примере.

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

Aspose.Cells также поддерживает анонимные типы или пользовательские объекты в смарт-маркерах. В следующем примере показано, как это работает. Сведения об импорте данных из динамических объектов с помощью смарт-маркеров см. в следующей статье:

Импорт из динамического объекта в качестве источника данных

Маркеры изображения

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

Параметры изображения

Параметры интеллектуального маркера для управления изображениями.

  • Изображение: FitToCell - Автоматически подгонять изображение к высоте строки ячейки и ширине столбца.
  • Изображение:ScaleN - Масштабировать высоту и ширину до N процентов.
  • Изображение:Ширина:НинВысота:Нин - Визуализация изображения N дюймов в высоту и N дюймов в ширину. Вы также можете указать позиции слева и сверху (в пунктах).

Вот исходный код, используемый в примере.

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

Aspose.Cells поддерживает вложенные объекты в смарт-маркерах, вложенные объекты должны быть простыми. Мы используем простой файл шаблона. См. электронную таблицу конструктора, содержащую несколько вложенных смарт-маркеров.

Первый рабочий лист файла SM_NestedObjects.xlsx, показывающий вложенные смарт-маркеры.
дело:изображение_альтернативный_текст
Следующий пример показывает, как это работает.

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

Aspose.Cells теперь также поддерживает использование универсального списка в качестве вложенного объекта. Пожалуйста, проверьте скриншот выходного файла Excel, созданного с помощью следующего кода. Как видно на снимке экрана, объект «Учитель» содержит несколько вложенных объектов «Ученик».

дело:изображение_альтернативный_текст

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

В следующем примере кода объясняется использование свойства HTML интеллектуальных маркеров. Когда он будет обработан, он покажет «Мир» в «Hello World» жирным шрифтом из-за HTML. тег.

Не построчно

Текущий метод обработки по умолчанию — обрабатывать smartmaker построчно. Но иногда интеллектуальные маркеры одной и той же таблицы данных необходимо обрабатывать вместе, независимо от того, если они находятся в одной строке или нет, то вы должны указать именованный диапазон «_CellsSmartMarkers» и указать WorkbookDesigner.LineByLine как false перед вызовом обработки.

|дело:изображение_альтернативный_текст|

Получение уведомлений при объединении данных со смарт-маркерами

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

Предварительные темы