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


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

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

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

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

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

    1. 在控制器编码中加载 sap.ui.export.Spreadsheet 库,可以在控制器初始化期间或按照需要时加载库。

    2. 为以下对象定义导出配置:

    • Columns

    • Data 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
     
        });
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    如果库是按需加载的,它只会在实际需要时可用(例如,当用户按下导出按钮时)。您必须在每次需要时请求该库(尽管它只会从后端加载一次)。这可以通过使用带有回调函数的 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
     
                    });
                });
            }
        });
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 相关阅读:
    欧拉函数公式证明
    低代码:时代的选择
    【云原生之Docker实战】部署轻量级容器云管理平台Humpback
    考研总计划(基础篇)
    MySQL多表联合查询
    javaweb 通过JDBC连接Mysql 数据库
    Python 全栈安全(四)
    【Python】图像和办公文档的处理
    栅极驱动器SCT52240STDR ,SCT51240TWBR
    继承【C++】
  • 原文地址:https://blog.csdn.net/i042416/article/details/127885553