Реализовать шаблонизатор Excel (на выбор - Go, NodeJS, PHP, Python)

900 руб.за час
27 октября 2020, 16:57 • 11 откликов • 114 просмотров
Разработать «шаблонизатор» для xlsx, который принимает готовый массив данных и заранее подготовленный файл шаблона, после читает его и перезаписывает значения в ячейках (пример {{ org.name }}, {{ wastes.all.i.name }}) на значения из массива данных.

Варианты
1) Доработать шаблонизатор excel на языке Go.
https://github.com/lin69x/go-xlsx-templater

Новая версия должна уметь:
  • Работать со всеми доступными листами шаблона xlsx
  • Принимать данные JSON
  • Поддерживать многоуровневые массивы

2) Доработать шаблонизатор excel на языке JavaScript (nodeJS)

https://github.com/optilude/xlsx-template

Новая версия должна уметь:
  • Поддерживать многоуровневые массивы
  • Работать со всеми доступными листами шаблона xlsx


3)Разработать на PHP или Python

**Примеры готовых библиотек на PHP**
PHP Excel Templator - https://github.com/alhimik1986/php-excel-templator
xlsx-template-php - https://github.com/anmoroz/xlsx-template-php



**Best practices**

PlumSail

Платный сервис - https://plumsail.com

Документация - https://plumsail.com/docs/documents/v1.x/getting-s...

Хороший пример взаимодействия с API - https://plumsail.com/docs/documents/v1.x/getting-s...

Идеальный пример шаблонизации - https://plumsail.com/docs/documents/v1.x/document-...




**Описание набора данных**

Основные массивы данных

1) meta - свойства и мета-данные для описания документа

2) org - основные данные используемые на всех листах документа

3) wastes - массив отходов

Делится на разделы

- accept (Принятые) - Приложение №2

- transfer (Переданые) - Приложение №3

- all (Все) - Приложение №4



Каждый раздел делится на 5 классов опасности (i, ii, iii, iv, v).
Каждый класс содержит массив list (список отходов), в котором может не быть отходов, а может быть 1,2,3 ... 50, 100 и тд.



Пример в вложении dataSet.json
Пример шаблона excel во вложении
Файлы