SAPUI5未捕获的TypeError:XLSX.read不是函数

时间:2018-08-27 14:43:55

标签: javascript sapui5

我在html5应用程序中使用xlsx.js(第三方)。 而且,我已按照以下链接作为向html5应用程序添加第三方库的参考。

https://blogs.sap.com/2017/04/30/how-to-include-third-party-libraries-modules-in-sapui5/

Excel读取功能

handleExcelUpload: function() {
            var fileUpload = this.getView().byId("idfileUploader");
            var domRef = fileUpload.getFocusDomRef();
            var file = domRef.files[0];
            if (file === undefined) {
                var ss = 0;
            } else {
                this.importExcelFile(file);
            }
        },
        importExcelFile: function(file) {
            var that = this;
            if (file && window.FileReader) {

                //Initialize Reader
                var reader = new FileReader();
                var result = {},
                    data;

                reader.onload = function(e) {
                    data = e.target.result;
                    //get workbook data as binary
                    var wb = XLSX.read(data, {
                        type: 'binary'
                    });

                    wb.SheetNames.forEach(function(sheetName) {
                        var roa = XLSX.utils.sheet_to_row_object_array(wb.Sheets[sheetName]);

                        if (roa.length > 0) {
                            result[sheetName] = roa;
                        }
                        that.bindTable(result, sheetName);
                        return result;
                    });
                };
                reader.readAsBinaryString(file);
            }
        }

问题是当我在Web-IDE中运行该应用程序时,该应用程序运行正常。 但是一旦部署到fiori发射台上,它会产生以下错误

  

Home.controller.js?eval:31未捕获的TypeError:XLSX.read不是   功能       在FileReader.reader.onload(Home.controller.js?eval:31)

我也尝试了其他方法。例如

1)在清单中的资源部分添加引用

"resources": {
        "css": [
            {
                "uri": "css/style.css"
            }
        ],
        "js": [
            {
                "uri": "lib/xlsx.js"
            }
        ]
    },

2)使用组件js加载库

jQuery.sap.require("sampleApp.lib.xlsx");
jQuery.sap.require("sampleApp.lib.jszip");

但是当部署到fiori云启动板时上述方法中的任何一种都不起作用 我该如何解决

0 个答案:

没有答案