Перейти к основному содержимому

Механизм шаблонизации XLS

Механизм шаблонизации позволяет создать заранее шаблон будущего XLS файла, прописав в нем все неизменяемые данные, оформление, форматирование, а так же указать переменные, которые при генерации будут заменены на реальные данные. По умолчанию переменные указываются в фигурных скобках, например, {ORDER_ID} - при обработке заменится на номер заказа.

Вставка строк в цикле​

Некоторые строки файла содержат похожую информацию и должны быть продублированы с незначительными изменениями. Яркий пример - позиции заказа. Для записи шаблона таких строк применяется следующий принцип: в файле-шаблоне формируется одна строка-пример, содержащая все необходимые шаблоны и форматирование. В первой ячейке такой строки должна стоять переменная-индентификатор мультистрочности. На примере позиций заказа, это {POSITIONS}. При обработке файла, такая строка будет продублирована такое количество раз, сколько позиций содержит заказ.

Выглядеть в шаблоне будет так:

Xls_templating_sample.png

Условие наличия переменной​

`{IF VALUE_NAME}`бла-бла`{ORDER_ID}``{/IF}`

Сработает, если переменная шаблона VALUE_NAME не будет пустой, вставит в ячейку текст "бла-бла{ORDER_ID}".

Может располагаться в любом месте.

Обратите внимание, что условие внутри другого условия не поддерживаются!

Расширенное условие наличия переменной​

`{IF VALUE_NAME}``{ORDER_ID}``{ELSE}`бла-бла`{/IF}`

Сработает, если переменная шаблона VALUE_NAME не будет пустой, вставит в ячейку текст "{ORDER_ID}", иначе вставит текст "бла-бла".

Может располагаться в любом месте.

Условие видимости строки​

`{IFSHOWROW VALUE_NAME}`

Если переменная VALUE_NAME пустая, строка с этим условием будет скрыта.

Может располагаться в любом месте.

Вставка формул​

`{FORMULA}`=ADDRESS(ROW(),COLUMN())`{/FORMULA}`

Вставляет формулу в ячейку. Формула должна быть записать в en-локале, т.е. разделитель операций запятая ,, а не точка с запятой ;.

Принудительно установить ячейке текстовый формат​

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

`{SETSTRING}`

Высота ячейки​

Можно настроить автоматическое увеличение высоты ячейки в зависимости от содержания. Для этого в ячейку перед переменной добавить:

`{CHECK_HEIGHT=X;Y;Z}`

где X - высота в пикселях; Y - кол-во символов на одной строке; Z - максимальное кол-во строк (по умолчанию: 3). Значение Z можно не указывать, достаточно указать высоту и кол-во символов.

Пример​

Размер шрифта в печатной форме "Счет" - 8pt. В одну строку ячейки "Описание" помещается 40 символов. Описание товара состоит из 85 символов. В ячейку для описания товара добавили параметры ячейки и переменную описания POSITION_NAME:

`{CHECK_HEIGHT=10;40}``{POSITION_NAME}`

При длине описания в 85 символов, высота ячейки будет 10 * ОКРУГЛИТЬ_ВВЕРХ(85 / 40) = 30 пикселей, 3 строки.

Высота шрифта в пикселях для справки:

Высота шрифта в px.png

Подойдет соответствующее значение в пикселях или минус 1px.