Преобразование Excel в JSON SAPUI5 - PullRequest
0 голосов
/ 08 апреля 2019

Я использую 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 или с чем-то еще ... помогите, пожалуйста !!


РЕДАКТИРОВАТЬ:

Все еще ищете ответ, не так лиПока не нашли решение


Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...