xls-report-ex
v0.0.5
Published
The template engine for generate xlsx documents
Readme
Excel Шаблонизатор
Поддерживаемые файлы: xlsx
Синтаксис
Поддерживается 2 вида выражений:
- Вывод значения переменной:
{{value|pipe:arg1:argN}} - Вывод массива переменных:
[[value|pipe:arg1:argN]]
Где:
value- некоторое значение или массивpipe- некоторая функция дополнительной обработки значенияarg1,argN- агрументы/параметры передаваемые в функцию обработки значения
Реализованные варианты выражений
{{propertyName}}- вывод значения без обработки{{propertyName|date}}- значение форматируется как дата{{fileName|image}}- производится поиск картинки по имени файла. Если картинка найдена, то она встраивается в ячейку таблицы{{propertyArrayName|find:propertyName:propertyValue}}- поиск объекта в массивеpropertyArrayNameу которого есть свойствоpropertyNameравноеpropertyValue{{propertyObjectName|get:propertyName}}- возвращает значение свойстваpropertyArrayNameиз объектаpropertyObjectName[[array|repeat-rows:3]]- обрабатать массив переменных и вывести его содержимое в секцию из 3 строк начиная с текущей. Строки будут продублированы в соответствии с размером массива.[[array|filter:propertyName:checkValue]]- отфильтровать массив. Если указано толькоpropertyName, то на выходе получим массив с объектами содержащими это поле. Если указаноpropertyNameиcheckValue, то на выходе получим массив с объектами которые содержат свойствоpropertyNameравноеcheckValue.
Примеры
Будем выводить в шаблонизаторе такие данные:
let data = {
reportBuildDate: 1526443275041,
results: [
{ text: 'some text 1', answerText: 'a text of an answer 1'},
{ text: 'some text 2', answerText: 'a text of an answer 2'},
{ text: 'some text 3', answerText: 'a text of an answer 3'},
{ answerText: 'a text of an answer 3'},
],
};Составим шаблон:
!!! В данном примере / указано вместо |
| A | B | |---|---| |{{reportBuildDate/date}}| {{results/find:text:some text 2/get:answerText}} | |[[results/filter:text/repeat-rows:1]] {{text}}| {{answerText}} |
Получим результат:
| A | B | |-------|-------| | 16.05.2018 | a text of an answer 2 | | some text 1 | a text of an answer 1 | | some text 2 | a text of an answer 2 | | some text 3 | a text of an answer 3 |
