xlsx-report-ex
v0.0.6
Published
The template engine for generate xlsx documents
Downloads
2
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 |