javascript - 在 JavaScript/SAPUI5 中读取 Excel (xlsx) 文件数据的问题

标签 javascript sapui5

我正在尝试使用 FileReader api 在我的 SAPUI5 应用程序中读取 .xlsx 文件。我用来上传文件的 UI5 控件是 sap.ui.unified.FileUploader 我的要求是读取 Excel 工作表的内容并将其数据显示在我的 UI5 应用程序中的表格中。

为此,我创建了一个 FileReader 实例并调用它的 .readAsBinaryString.readAsText 方法并将我的文件传递给它。 读取内容时,在onload事件内部,文件内容以不可读格式显示(引用下文) enter image description here

我错过了什么吗?还是有其他读取 Excel 数据的方法?

最佳答案

感谢mkysoft的和this回答。我能够读取 .xlsx 文件内容。

为此,我必须在我的项目中创建两个文件 jszip.jsxlsx.js。我为它们创建了一个单独的文件夹,并在我的 Controller 的 sap.ui.define 部分提到了这两个文件的位置。

这两个库可在 CDNJS - JSZip 3CDNJS - XLSX 4地点。

sap.ui.define([
    "sap/ui/core/mvc/Controller",
    .... //other libraries
    "projectnamespace/foldername/jszip",
    "projectnamespace/foldername/xlsx"
], function (Controller,...., jszip, xlsx)

然后,为了读取 .xlsx 文件,我添加了以下代码:

    var oFileUploader = sap.ui.getCore().byId("fileUploader"); // get the sap.ui.unified.FileUploader
    var file = oFileUploader.getFocusDomRef().files[0]; // get the file from the FileUploader control
    if (file && window.FileReader) {
        var reader = new FileReader();
        reader.onload = function (e) {
            var data = e.target.result;
            var excelsheet = XLSX.read(data, {
                type: "binary"
            });
            excelsheet.SheetNames.forEach(function (sheetName) {
                var oExcelRow = XLSX.utils.sheet_to_row_object_array(excelsheet.Sheets[sheetName]); // this is the required data in Object format
                var sJSONData = JSON.stringify(oExcelRow); // this is the required data in String format
            });
        };
        reader.readAsBinaryString(file);
    }

关于javascript - 在 JavaScript/SAPUI5 中读取 Excel (xlsx) 文件数据的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59322328/

相关文章:

mongodb - OData Jaydata - odata 更新请求返回错误 404(SAPUI5,节点)

javascript - 动态绑定(bind) sap.m.list BindAggregation 出错

sapui5 - 从 SmartTable 中删除过滤器选项

javascript - SAPUi5 文件 uploader 设置 WebKitFormBoundary

javascript - 如何使用 Visual Studio 将 typescript 网站发布到 GitHub Pages?

javascript - 如何在 HTML5 中创建 "Pie Chart"?

javascript - CSS 裁剪 div 元素

javascript - 为什么 event.bubbles 对于 "focusin"和 "focusout"是假的?

javascript - 如何单击标题中的链接然后返回 HTML、Javascript 和 CSS?

sapui5 - 获取在核心 :html by its ID 中定义的元素