JS-библиотека для создания форматированных электронных таблиц XLSX

В настоящее время я создаю общие электронные таблицы в JS, используя https://www.npmjs.com/package/xlsx< /а> . Это отлично работает, чтобы создать только общую электронную таблицу для отображения моих данных. Тем не менее, я хочу добавить несколько функций.

https://imgur.com/a/gJE9mXg — это пример того, чего я хочу достичь. Он был создан с использованием Apache POI, который доступен только для Java.

Функции, которые я хочу на этом снимке экрана,

  1. Возможность добавить картинку (видно как логотип в левом верхнем углу)
  2. Возможность изменить цвет шрифта (как видно в заголовке в центре)
  3. Возможность выравнивания текста по центру (как видно с подзаголовками в центре)
  4. Возможность сортировки полей (как показано с помощью кнопок со стрелками для каждого столбца)

Похоже, что SheetJS может предоставить некоторые из этих функций в своей премиальной версии. https://dzone.com/articles/5-popular-standalone-javascript-spreadhsheet-libra — это список других библиотек, которые я изучал. Однако этот список больше похож на эмуляцию электронной таблицы с собственными объектами JS, а не на создание файла .xlsx. Кроме того, для большинства из них требуются платные лицензии.

У кого-нибудь есть опыт создания моих 4 требований с помощью бесплатного решения JS? Я строю на Meteor JS, кстати.

Если нет, есть ли другие обходные пути для достижения этого? т.е. Приложение просто выводит .csv, но затем создает общий файл «шаблона» excel, который будет выполнять все форматирование с помощью CSV? Или делегировать какой-либо другой программе/скрипту создание XLSX и загрузку выходного файла.

Спасибо


person user2402616    schedule 20.11.2019    source источник


Ответы (1)


exceljs имеет все нужные вам функции, просто у него немного другой API и он не так популярен, как xlsx, поэтому он всегда остается незамеченным.

person Harry Adel    schedule 21.11.2019
comment
Только вчера видел это. Удивительно, но мне пришлось просмотреть третью страницу поиска Google, чтобы найти это. Не уверен, почему, поскольку в его документации, похоже, есть все, что есть в платных библиотеках. Просто быстрый вопрос, если вы использовали это раньше. Я пытаюсь запустить их демонстрацию на github.com/natergj/excel4node в разделе "Основное использование". Знаете ли вы, как записать выходной файл .xlsx в дескриптор файла на стороне клиента, чтобы я мог загрузить файл в своем браузере и протестировать его? - person user2402616; 21.11.2019
comment
Да, это скрытая жемчужина в основном. Если вы хотите загрузить файл xlsx, вы можете попробовать этот метод здесь: github .com/exceljs/exceljs/issues/342#issuecomment-481225998 - person Harry Adel; 22.11.2019
comment
Да, у меня это получилось примерно так: wb.xlsx.writeBuffer() .then(buffer =› { // buffer --› blob const blob = new Blob([buffer], { type: application/vnd.ms -excel }) let link = document.createElement('a') link.download = 'download.xlsx' link.target = 'blank' // blob --> url link.href = URL.createObjectURL(blob) ссылка. click() }) .catch(err =› { throw err }); Много проб и ошибок, чтобы получить его на стороне браузера dl. Мне пришлось использовать их библиотеку браузера, в которой было много зависимостей. - person user2402616; 22.11.2019