gpt4 book ai didi

excel - SAPUI5 的 Sheetjs;将表格数据导出到电子表格

转载 作者:行者123 更新时间:2023-12-04 21:31:41 24 4
gpt4 key购买 nike

我的 SAPUI5 应用表数据之一需要能够导出到 Excel/电子表格。 sap.ui.core.util.Export不符合导出数据的标准,特别是它只在1列中写入数据。

导出数据示例:

enter image description here

从 SAPUI5 1.50 开始,SAP 制作了 sap.ui.export.Spreadsheet但根据他们的一位专家的说法,上述库不适用于 Eclipse 开发工具 (https://answers.sap.com/questions/474315/sapuiexport-missing-in-sap-ui5-version-152.html)

然后有人建议我使用可以将数据导出到电子表格的 3rd 方 JS 库,并且在研究后,我遇到了 SheetJS。我找到了这篇关于如何在 SAPUI5 中实现和使用 SheetJS 库的代码的文章:Export Excel (.xlsx extension) file with includes responsive table data in SAPUI5 .

我的问题:
如何在 Eclipse 上的 SAPUI5 项目中添加外部 JS 库?请注意,我们正在 NetWeaver 服务器上运行我们的 SAPUI5 应用程序。我需要根据我拥有的环境了解将这些 JS 放在哪里(可以将它/它们放在 webContent/路径中吗?)以及如何访问它们(如果有的话)。

最佳答案

通过结合我得到的所有研究已经得到了答案。

我发现了很多外部库的组合,用于 sheetjs 的工作,如 xlsx.js - jszip.jsxlsx.full.min.js只有或者还有xlsx.full.min.js - FileSaver.js组合。

我第一次尝试使用 xlsx.full.min.jsFileSaver组合,它的工作!我先下载了这两个库并将它们复制到我的/webContent/controller路径(是的,我的 Controller 的相同路径级别)。

接下来是使用 sap.ui.define 在 Controller 中定义它们。
Defining 3rd party libraries in SAPUI5
您还会注意到我在上面添加了 2 行代码:

/* global XLSX:true */
/* global saveAs:true */

使用这 2 行代码,调用库时会出错。如果要在 js 类之外调用,这些是 JS 的全局名称。

下面是我用来访问上面提到的 2 个 JS 的测试代码:

onExportToExcel: function() {
console.log(XLSX);
var wb = XLSX.utils.book_new();
wb.Props = {
Title: "Sample SheetJS",
Subject: "Test",
Author: "HPC",
CreatedDate: new Date(2018, 5, 19)
};
wb.SheetNames.push("Test Sheet");
var ws_data = [
['HPC', 'TEST', 'call']
]; //a row with 2 columns
var ws = XLSX.utils.aoa_to_sheet(ws_data);
wb.Sheets["Test Sheet"] = ws;

var wbout = XLSX.write(wb, {
bookType: 'xlsx',
type: 'binary'
});

function s2ab(s) {
var buf = new ArrayBuffer(s.length); //convert s to arrayBuffer
var view = new Uint8Array(buf); //create uint8array as viewer
for (var i = 0; i < s.length; i++) view[i] = s.charCodeAt(i) & 0xFF; //convert to octet
return buf;
}
saveAs(new Blob([s2ab(wbout)], {
type: "application/octet-stream"
}), 'test.xlsx');
}

输出:
Output export file

随时对此提供反馈。
可能还有其他更好的方法来实现这一目标。

关于excel - SAPUI5 的 Sheetjs;将表格数据导出到电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50366153/

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