1.2.1. Шаблоны XLSX и XLS

Шаблоны XLSX и XLS создаются с помощью Microsoft Office или LibreOffice.

Для каждой полосы отчета в шаблоне должен быть определен регион с именем полосы. К примеру, если отчёт содержит две полосы - Header и Data, то шаблон отчёта также должен содержать именованные регионы Header и Data. Именованные регионы создаются путем выделения нужного диапазона ячеек и ввода имени в поле в левом верхнем углу приложения. Для редактирования уже созданных именованных регионов в Microsoft Office используется команда меню FormulasName Manager, а в OpenOffice команда InsertNamesManage. И, напротив, каждый элемент шаблона, который необходимо отобразить, должен быть создан как полоса в структуре отчёта, даже если эта полоса будет пустой.

Полосы выводятся в том порядке, в котором заданы в структуре отчета.

Полосы могут быть горизонтальными и вертикальными. В горизонтальных полосах именованные регионы будут заполняться вниз, в вертикальных - вправо. Горизонтальные полосы могут быть организованы в древовидную структуру и содержать вложенные (или дочерние) полосы. Поэтому для вложенных полос необходимо создавать именованные регионы непосредственно под регионами, соответствующими родительским полосам. Отрисовка полос в XLSX происходит по следующему алгоритму:

  • Создание первого ряда родительской полосы →

  • Создание всех дочерних полос первого ряда →

  • Создание следующего ряда родительской полосы.

Поля наборов данных полосы размечаются в шаблоне с помощью строк вида ${field_name}, где field_name - имя поля. Например:

report template xls

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

Формулы могут ссылаться на свою полосу или другие полосы в шаблоне. Чтобы формулы обрабатывались генераторм отчётов, они должны принимать диапазон ячеек полосы или явные координаты ячеек, например, (A1*B1) или ($B:$B).

Для создания диаграммы в шаблоне Excel необходимо создать полосу и именованный регион с тем же названием, затем выбрать в контекстном меню диаграммы пункт "Выбрать данные", где указать ссылку на необходимые полосы отчёта. Если данные для диаграммы находятся в непрерывном диапазоне ячеек, можно выбрать любую ячейку в этом диапазоне, так в диаграмму будут включены все данные в диапазоне. Если данные находятся в прерывном диапазоне, выберите несмежные ячейки или диапазоны (при этом область выделения должна быть в виде прямоугольника).