Уже получил ответ, объединив все исследования, которые я получил.
Я нашел множество комбинаций внешних библиотек, которые можно использовать, чтобы листы работали как xlsx.js - только jszip.js или xlsx.full.min.js, или есть также xlsx.full.min.js - FileSaver.js сочетание.
Сначала я попытался использовать комбинацию xlsx.full.min.js и FileSaver, и это сработало! Сначала я загрузил обе библиотеки и скопировал их в мой путь / webContent / controller (да, тот же уровень пути моих контроллеров).
Далее нужно определить их в вашем контроллере, используя sap.ui.define
Определение сторонних библиотек в SAPUI5
Вы также заметите, что я добавил 2 строки кода выше:
/ * global XLSX: true /
/ глобальное сохранение как: правда * /
С этими двумя строками кодов будет ошибка при вызове библиотек. Это глобальные имена JS, если он вызывается вне класса js.
Ниже приведен тестовый код, который я использовал для доступа к двум JS, о которых я упоминал выше:
onExportToExcel: function(){
console.log(XLSX);
var wb = XLSX.utils.book_new();
wb.Props = {
Title: "Sample SheetJS",
Subject: "Test",
Author: "HPC",
CreatedDate: new Date(2018,5,19)
};
wb.SheetNames.push("Test Sheet");
var ws_data = [['HPC' , 'TEST', 'call']]; //a row with 2 columns
var ws = XLSX.utils.aoa_to_sheet(ws_data);
wb.Sheets["Test Sheet"] = ws;
var wbout = XLSX.write(wb, {bookType:'xlsx', type: 'binary'});
function s2ab(s) {
var buf = new ArrayBuffer(s.length); //convert s to arrayBuffer
var view = new Uint8Array(buf); //create uint8array as viewer
for (var i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF; //convert to octet
return buf;
}
saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), 'test.xlsx');
}
Выход:
Выходной файл экспорта
Не стесняйтесь оставить отзыв об этом. Может быть другой лучший подход для достижения этой цели. Спасибо!