zl程序教程

您现在的位置是:首页 >  其他

当前栏目

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

SAPExcel导出工具 如何 功能 关于 加载
2023-09-14 09:02:37 时间

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
 
    });
});

如果库是按需加载的,它只会在实际需要时可用(例如,当用户按下导出按钮时)。您必须在每次需要时请求该库(尽管它只会从后端加载一次)。这可以通过使用带有回调函数的 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
 
                });
            });
        }
    });
});