Я использую SAPUI5 и пытаюсь загрузить Excel и, используя библиотеку XLSX-JS, преобразовать его в JSON, чтобы я мог прочитать его и показать в таблице.
Здесьэто ссылка на проект библиотеки github:
https://github.com/SheetJS/js-xlsx
У меня мало проблем с этим, поэтому мне нужно знать, что я делаю неправильно ...
Яс помощью приложения WEB IDE, и я попытался выполнить загрузку, а затем прочитать файл, но это не работает, поэтому я решил вручную импортировать Excel (чтобы попробовать, если я могу прочитать их по пути), и до сих пор нетработает.
Вот что я использую для чтения файла, который я импортировал вручную:
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/m/MessageToast",
"ExcelImport/ExcelImport/libs/xlsx.full.min"
], function (Controller, MessageToast, XLSX) {
"use strict";
return Controller.extend("ExcelImport.ExcelImport.controller.ExcelImportView", {
onInit: function () {
var oModel = new sap.ui.model.json.JSONModel();
this.getView().setModel(oModel);
sap.ui.getCore().setModel(oModel);
},
handleExcelUpload: function () {
var url = "/files/TRY.xlsx";
/* set up async GET request */
var req = new XMLHttpRequest();
req.open("GET", url, true);
req.responseType = "arraybuffer";
req.onload = function (e) {
var data = new Uint8Array(req.response);
var workbook = XLSX.read(data, {
type: "array"
});
/* DO SOMETHING WITH workbook HERE */
var first_sheet_name = workbook.SheetNames[0];
/* Get worksheet */
var worksheet = workbook.Sheets[first_sheet_name];
MessageToast.show(XLSX.utils.sheet_to_json(worksheet));
};
req.send();
}
});
});
Во-первых, у меня ошибка с массивом Uint8Array, который не определен,После этого, когда я нажимаю кнопку, которая вызывает handleExcelUpload, она показывает мне следующую ошибку:
TypeError: Cannot read property 'read' of undefined
at XMLHttpRequest.req.onload (ExcelImportView.controller.js:46)
На данный момент ожидаемый вывод - это просто показать JSON через MessageToast, потому что однаждыУ меня есть JSON, его было бы так легко отправить в таблицу.
Я думаю, что если я справлюсь с этой проблемой с помощью предварительно импортированного файла, я смогу решить проблему и с импортом.
Не знаю, связана ли проблема с массивом Uint8Array или с чем-то еще ... помогите, пожалуйста !!
РЕДАКТИРОВАТЬ:
Все еще ищете ответ, не так лиПока не нашли решение
Спасибо!