关于 SAP UI5 控件内容的 Excel 导出功能,如何加载所需的导出工具库

JerryWang_汪子熙 -
关于 SAP UI5 控件内容的 Excel 导出功能,如何加载所需的导出工具库

SAP UI5 ExpreadSheet 导出功能允许开发人员将数据导出到 Office Open XML 电子表格。

开发人员可以导出具有表格格式的任何类型的内容,例如表格或列表。

如果使用 SmartTable 控件导出数据,还可以使用不同类型的导出,比如客户端导出(Client Export)或 SAP Gateway 导出。

SmartTable 控件提供导出所需的所有预配置内容。我们可以简单地使用它而无需自己定义任何配置,或者可以调整内容以使其适合自己的特定要求。 对于其他实体,必须如下所述手动定义配置。

如果要在没有 SmartTable 的情况下手动导出数据,则必须执行以下步骤:

在控制器编码中加载 sap.ui.export.Spreadsheet 库,可以在控制器初始化期间或按照需要时加载库。为以下对象定义导出配置:ColumnsData sources用于处理导出的其他属性(可选)

如果库是在控制器初始化期间加载的,则它在控制器的整个生命周期内都可用。 您需要做的就是将库作为依赖项添加到现有的 sap.ui.define 调用中。此机制可确保每次使用该库时都已加载该库。 不需要处理同步或异步加载,但即使从未触发导出,也会加载库。

示例代码如下:

sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/export/Spreadsheet"
], function(Controller, Spreadsheet) {
    "use strict";
 
    return Controller.extend("sample.Spreadsheet", {
 
        // Place your controller coding here
 
    });
});

如果库是按需加载的,它只会在实际需要时可用(例如,当用户按下导出按钮时)。您必须在每次需要时请求该库(尽管它只会从后端加载一次)。这可以通过使用带有回调函数的 sap.ui.require 来完成。 这是确保库将被异步加载所必需的,但它需要更多的努力来实现导出,因为所有导出步骤都需要由回调函数包装。

示例代码如下:

sap.ui.define([
    "sap/ui/core/mvc/Controller"
], function(Controller) {
    "use strict";
 
    return Controller.extend("sample.Spreadsheet", {
 
        onExport: function() {
            // loadLibrary is only needed when the library is not added as a dependent in bootstrap or any other dependency mechanism used in your project.
            var oExportLibLoadPromise = sap.ui.getCore().loadLibrary("sap.ui.export", true);
         
            oExportLibLoadPromise.then(function() {
                sap.ui.require(["sap/ui/export/Spreadsheet"], function(Spreadsheet) {
 
                    // Place your export coding here
 
                });
            });
        }
    });
});
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

前端javascripthtml5htmlsap

扩展阅读

加个好友,技术交流

1628738909466805.jpg