ExportToExcelCommand

Команда; генерирует Excel-файл из шаблона, в котором вместо переменных подставляются определенные значения.

Поддерживаемые переменные

В значениях параметров могут быть использованы тэги для изменения форматирования параметра.

Тэги форматирования

[b][/b]

Задает полужирное начертание отрывка текста.

[i][/i]

Выделяет отрывок текста курсивом.

[u][/u]

Выделяет отрывок текста подчёркиванием.

[br]

Перенос текста на новую строку.

[size={value}][/size]

Задает отрывку текста размер шрифта.

В качестве {value} ожидается целочисленное значение.

Тэги форматирования заданные в тексте ячейки так же заменяются на соответвующие форматирование.

<#variable#>

Служит для отображения скалярного значения.

<%variable%>

Служит для отображения массива (для использования в таблице).

<*function*>

Служит для подстановки агрегирующей функции (для использования в конце таблицы).

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

Поддерживаемые агрегирующие функции

sum

Сумма значений столбца

avg

Среднее значение столбца

min

Минимальное значение столбца

max

Максимальное значение столбца

count

Количество значений столбца (число строк в таблице)

<@PATH@>

Служит для вставки изображения.

Например, для вставки изображения с параметризованным путем следует указать выражения вида <@<#variable#>@> - для скалярных значений и <@<%variable%>@> - для массивов.

Выражение PATH имеет следующий формат: PATH[?width=INT][?height=INT][?mode=MODE][?rotation=INT], где:

  • PATH - полный путь до файла изображения;

  • width - необязательный параметр ширины изображения; в качестве значения INT ожидается положительное целочисленное значение;

  • height - необязательный параметр высоты изображения; в качестве значения INT ожидается положительное целочисленное значение;

  • mode - необязательный параметр типа размера; в качестве значения MODE ожидается тип размера изображения (по умолчанию "Zoom");

  • rotation - необязательный параметр поворота изображения; в качестве значения INT ожидается целочисленное значение в диапазоне от -360 до 360 градусов.

Если явно не указаны width и height, то изображение будет вписываться в размеры ячейки (высота строки и ширина колонки).

Если высота строки имеет значение по умолчанию, то оно воспринимается, как null. В таком случае размер картинки будет зависеть только от ширины колонки, и итоговое изображение будет перекрывать другие строки.

Параметры width и height поддерживают режимы не больше и не меньше, которые задаются символами "-" и "+" соответственно. Символы указываются после значения параметра.

  • Не больше (-) - если размер изображения превышает указанное в параметре значение, то для отображения картинки в файле берется значение параметра, иначе - оригинальный размер изображения.

  • Не меньше (+) - если размер изображения меньше указанного в параметре значения, то для отображения картинки в файле берется значение параметра, иначе - оригинальный размер изображения.

Для одного параметра можно использовать только один режим.

Если используется режим, то на параметр размера не влияет параметр mode.

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

Типы размера изображения

Zoom

Растягивание изображения до указанной ширины и высоты (в большую или меньшую сторону), сохраняя пропорции изображения

ZoomLess

Растягивание изображения до указанной ширины и высоты (только в меньшую сторону), сохраняя пропорции изображения

Stretch

Растягивание изображения до указанной ширины и высоты без сохранения пропорций изображения

Динамические колонки

Для заголовков в динамических колонках используется <[#variable#]>.

Для значений в динамических колонках используется <[%variable%]>.

Для динамических колонок в качестве параметра ожидается матрица из 3-х столбцов:

  1. Идентификатор строки - является вспомогательным полем, необходимым для корректного определения кол-ва динамических колонок;

  2. Название столбца;

  3. Значение столбца.

К примеру, в команде определён следующий параметр:

<Parameter Name="Work">
  <DataConnection SourceDataConnection="WorkPrimaryGetDataConnection">
    <Fields>
      <Field Name="RowNumber" />
      <Field Name="ColumnTitle" />
      <Field Name="CellValue" />
    </Fields>
  </DataConnection>
</Parameter>

DataConnection возвращает следующие данные:

RowNumber
ColumnTitle
CellValue

1

'Column1'

11

1

'Column2'

12

1

'Column3'

13

1

'Column4'

14

2

'Column1'

21

2

'Column2'

22

2

'Column3'

23

2

'Column4'

24

3

'Column1'

31

3

'Column2'

32

3

'Column3'

33

3

'Column4'

34

В итоге будет сформирована следующая таблица:

'Column1'
'Column2'
'Column3'
'Column4'

11

12

13

14

21

22

23

24

31

32

33

34

При задании имен параметров команды необходимо соблюдать их уникальность, т.к. при формировании динамических колонок тэги <[#variable#]> и <[%variable%]> будут заменены на временные тэги по количеству колонок:

<[#variable#]> - <#variableTitle0#>, <#variableTitle1#>, <#variableTitle2#>...<#variableTitleN#>;

<[%variable%]> - <%variableValue0%>, <%variableValue1%>, <%variableValue2%>...<%variableValueN%>.

Шаблон ExportToExcelCommand

<Command Name="" Type="ExportToExcelCommand" Assembly="Commands">
  <!--Тэги, общие для всех команд-->
  <Condition Name="" />
  <Lock Value="" />
  <!--Тэги, специфичные для ExportToExcelCommand-->
  <Async Value="" />
  <TemplateFileName></TemplateFileName>
  <Parameters>
    <Parameter Name=""></Parameter>
  </Parameters>
  <Open></Open>
  <Print></Print>
  <PrintCopy></PrintCopy>
  <GroupTags></GroupTags>
  <ExportFileName Ask=""></ExportFileName>
  <InsertPictures Value="" />
  <UseRawTags Value="" />
</Command>

Описание ExportToExcelCommand

<Command Name="ExportToExcelCommandName" Type="ExportToExcelCommand" Assembly="Commands">
  <!--Тэги, общие для всех команд-->
  <!--Тэги, специфичные для ExportToExcelCommand-->
</Command>

Результат выполнения ExportToExcelCommand

Value

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

Тэги, специфичные для ExportToExcelCommand

Async

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

Необязательный тэг. Значение тэга <Async>: не ожидается.

Если тэг <Async> отсутствует, то для атрибута Value используется значение False.

<Async Value="False" />

Атрибуты тэга <Async>

Value

Значение.

Обязательный атрибут. Ожидается логическое значение.

TemplateFileName

Путь до Excel-файла шаблона. Поддерживается формат .xlsx.

Обязательный тэг. Любое значение будет переведено в текстовое.

Поддерживаются константы замены.

<TemplateFileName>TemplateFileName.xlsx</TemplateFileName>

Parameters

Параметры, которые будут переданы в файл шаблона для замены.

Необязательный тэг. Значение тэга <Parameters>: список тэгов <Parameter>.

<Parameters>
  <Parameter Name="ParameterName1">ParameterValue1</Parameter>
  <Parameter Name="ParameterName2">ParameterValue2</Parameter>
</Parameters>

Тэг <Parameter>

Параметр, который будет передан в файл шаблона для замены.

Необязательный тэг. Значение тэга <Parameter>: любое значение.

Атрибуты тэга <Parameter>

Name

Название параметра.

Переменные в шаблоне задаются как <#ParameterName1#> - для отображения скалярного значения или <%ParameterName1%> - для отображения массива при использовании в таблице.

Open

Признак открытия Excel-файла после формирования.

Необязательный тэг. Ожидается логическое значение.

Если тэг <Open> отсутствует, то используется значение True.

<Open>True</Open>

Print

Признак печати Excel-файла после формирования.

Необязательный тэг. Ожидается логическое значение.

Если тэг <Print> отсутствует, то используется значение False.

<Print>False</Print>

Количество копий для печати Excel-файла после формирования.

Необязательный тэг. Ожидается положительное целочисленное значение.

Если тэг <PrintCopy> отсутствует, то используется значение 1.

<PrintCopy>1</PrintCopy>

ExportFileName

Полный путь до Excel-файла, в который будут выгружены данные.

Необязательный тэг. Любое значение будет переведено в текстовое.

Если тэг <ExportFileName> отсутствует, то имя файла выбирается произвольно в системной папке Temp.

Поддерживаются константы замены.

<ExportFileName Ask="False">ExportFileName</ExportFileName>

Атрибуты тэга <ExportFileName>

Ask

Признак, определяющий, будет ли задан вопрос о пути экспорта Excel-файла.

Необязательный атрибут. Ожидается логическое значение.

Если атрибут Ask отсутствует, то используется значение False.

InsertPictures

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

Необязательный тэг. Значение тэга <InsertPictures>: не ожидается.

Если тэг <InsertPictures> отсутствует, то для атрибута Value используется значение True.

Если атрибут Value в тэге <InsertPictures> имеет значение False, то замена в файле шаблона тэгов вставки изображений не произойдет и тэги останутся без изменений.

<InsertPictures Value="" />

Атрибуты тэга <InsertPictures>

Value

Значение.

Обязательный атрибут. Ожидается логическое значение.

UseRawTags

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

Необязательный тэг. Значение тэга <UseRawTags>: не ожидается.

Если тэг <UseRawTags> отсутствует, то для атрибута Value используется значение False.

Если атрибут Value в тэге <UseRawTags> имеет значение True, то замена в файле шаблона тэгов вставки скалярных и табличных значений и изображений не произойдет и тэги останутся без изменений.

<UseRawTags Value="" />

Атрибуты тэга <UseRawTags>

Value

Значение.

Обязательный атрибут. Ожидается логическое значение.

Last updated