Привет!
Голова моя уже раскалывается, нервы на взводе, а результата за два дня работы я добиться так и не смог =(
Прошу помочь мне советом)
В общем:
1) Есть приложение на Meteor (решил разобраться что да как с ним, запилить небольшой проект, до этого не было опыта работы ни с ним, ни с node, npm, mrt, bower и т.д., в web всё писал на Yii);
2) Есть файл sample.xlsx находящийся на сервере;
3) Есть библиотека для разбора XLSX на JavaScript. Называется она SheetJS, может работать как на клиенте, так и на сервере (node, все дела).
Задача такова:
1) При нажатии на кнопку - скачиваем с сервера на клиент шаблон файла sample.xlsx,
в котором задано форматирование - это описано в стандартной документации SheetJS, делается через XMLHttpRequest, ничего сложного;
2) Меняем что-то в файле - тоже вроде более/менее понятно;
3) Сохраняем файл на компьютер пользователя. Вот тут и кроется корень проблемы - на компьютер пользователя сохраняется файл без какого бы то ни было форматирования. То есть тупо - стандартная разметка Excell и куча текста разбросанная по всей таблице.
Собственно, мои вопросы:
1) Я, грешен, не смог до конца разобраться с исходниками SheetJS и форматом XLSX. Возможно это - нормальное поведение для SheetJS и он предназначен только лишь для разбора/парсинга, но не для нормального сохранения XLSX?
2) Возможно я не увидел где-то какую-то опцию?
3) Существуют ли другие, адекватные библиотеки по работе с XLSX на JavaScript? Насколько я смог понять - нет.
4) Стоит забить на идею разбора/сохранения Excel шаблона с использование JS и просто запилить всё как отдельный веб-сервис для текущего проекта на PHP и PHPExcel? Это будет легко, но... нафиг тогда Meteor и иже с ним?
5) А может стоит сменить формат исходного и итогового файла на PDF? Но тут тоже не знаю... какая библиотека может работать по pdf шаблону? В каком приложении сделать pdf шаблон?
Собственно я сейчас склоняюсь к последнему варианту, как к наиболее подходящему.
Отказаться от создания Excel документов я не могу, так как это приведёт к бессмысленности реализации вообще всего проекта. А сделал я там уже не мало и собираюсь довести начинание до конца, хотя повторюсь - уже появилось желание разбить клавиатурой монитор, а также прийти лично к каждому разработчику SheetJS и... поговорить на тему добавления необходимого мне функционала.
Вообще сама библиотека выглядит как какая-то поделка на коленке, но люди хвалят...
Ссылка на библиотеку:
https://github.com/SheetJS/js-xlsx
Фух, вот, вроде высказался. Ребята, прошу помогите советом.
Вот примеры изначального:
... и итогового файла: