Табулятор: Ошибка загрузки — такой тип загрузки не найден

#javascript #vue.js #tabulator

#javascript #vue.js #табулятор

Вопрос:

Хотел бы попросить о помощи, в настоящее время я использую Tabulator (4.9) вместе с Vue. У меня возникли проблемы с загрузкой / экспортом моих данных в Excel. Я уже включил SheetJS в свой проект, как указано на странице Tabulator.

Следующее выдает ошибку, что XLSX не определен:

 import 'xlsx/dist/xlsx.full.min.js'
this.tabulator.download('xlsx', 'data.xlsx')
 

Но как только я включаю XLSX, он сообщает мне «Ошибка загрузки — такой тип загрузки не найден«:

 import XLSX from 'xlsx/dist/xlsx.full.min.js'
this.tabulator.download(XLSX, 'data.xlsx')
 

Очень хотелось бы знать, не упускаю ли я чего-то.

Спасибо.

Ответ №1:

Ваш первый подход правильный, вы должны вызывать функцию загрузки и передавать xlsx строку

 this.tabulator.download('xlsx', 'data.xlsx');
 

Проблема в том, что табулятор ожидает найти объект XLSX в window объекте (или global объекте, если это проект узла), поскольку именно туда помещается библиотека при извлечении из CDN.

Итак, в вашем случае ваш импорт должен быть:

 import XLSX from 'xlsx/dist/xlsx.full.min.js';
window.XLSX = XLSX;
 

Комментарии:

1. ооо, попробую это, как только смогу! ^^

2. эй, я смог протестировать это, и это устранило мою проблему! Спасибо! ^^

Ответ №2:

Я не пробовал использовать tabulator. Вы можете снова просмотреть его документацию, чтобы увидеть, не упустили ли вы что-то. В противном случае я использовал vue-json-csv. Вы можете импортировать его глобально и вызывать его в любом месте, где захотите, в своих шаблонах.

  <DownloadCsv :data="exportData" name="export.csv">
  <button class="mr-2">Export to csv</button>
 </DownloadCsv>
 

Требуется data prop, который будет набором данных json, который вы хотите экспортировать в Excel. И name реквизит, это будет имя файла экспорта при его создании.

Комментарии:

1. Спасибо, постараюсь разобраться и в этом. Но в основном мне нужна была HTML-таблица для Excel.

2. Этот ответ на самом деле не решает проблему, он просто вводит в микс другую библиотеку