gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 08:17:43 25 4
gpt4 key购买 nike

我正在尝试使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com