头图

本 API 创建一个新的电子表格导出对象。使用此对象从表格数据构建和下载 Office Open XML 电子表格格式的电子表格文件。此功能通常与 UI5 表一起使用。

该类使用来自指定数据源的表格数据构建 Office Open XML 电子表格格式的电子表格。检索数据并在浏览器的工作线程中异步构建文档。 进程的状态在可以被设置为隐藏的进度对话框中直观地呈现给用户。 用户可以使用对话框的取消按钮取消该过程。

此类提供用于电子表格导出的低级 API。 sap.ui.comp.smarttable.SmartTable 控件在内部实现它并提供开箱即用的导出功能。

除了上述默认功能外,该 API 还支持下列可选功能:

  • 隐藏进度对话框。
  • 弃用 worker 并在主线程中运行文档生成过程。
  • 配置导出的文件名。

要开始导出,请创建一个新的 sap.ui.export.Spreadsheet 对象并调用构建方法。 必须在构造函数中提供列配置、数据源和导出设置。 build 方法打开一个进度对话框并启动一个异步导出过程。 导出过程从数据源获取数据行,在工作线程中在浏览器中构建电子表格,最后将文档下载到客户端。

示例代码:

var oSpreadsheet = new sap.ui.export.Spreadsheet(mSettings);
  oSpreadsheet.build();

此外,还可以附加 onprogress 事件侦听器以接收有关导出进度的通知,并跟踪返回的 Promise 的完成状态。

例子代码:

var oSpreadsheet = new sap.ui.export.Spreadsheet(mSettings);
  oSpreadsheet.onprogress = function(iValue) {
      {@link sap.base.Log#debug Log.debug}("Export: %" + iValue + " completed");
  };
  oSpreadsheet.build()
    .then( function() { {@link sap.base.Log#debug Log.debug}("Export is finished"); })
    .catch( function(sMessage) { {@link sap.base.Log#error Log.error}("Export error: " + sMessage); });

column configuration 的例子:

 var aColumns = [];
  aColumns.push({
      label: "Name",
      property: "name"
  });
  aColumns.push({
    label: "Salary",
    property: "salary",
    type: "number",
    scale: 2
  });

  var mSettings = {
    workbook: {
      columns: aColumns,
      context: {
        application: 'Debug Test Application',
        version: '${version}',
        title: 'Some random title',
        modifiedBy: 'John Doe',
        metaSheetName: 'Custom metadata',
        metainfo: [
          {
            name: 'Grouped Properties',
            items: [
              { key: 'administrator', value: 'Foo Bar' },
              { key: 'user', value: 'John Doe' },
              { key: 'server', value: 'server.domain.local' }
            ]
          },
          {
            name: 'Another Group',
            items: [
              { key: 'property', value: 'value' },
              { key: 'some', value: 'text' },
              { key: 'fu', value: 'bar' }
            ]
          }
        ]
      },
      hierarchyLevel: 'level'
    },
    dataSource: mDataSource,
    fileName: "salary.xlsx"
  };
  var oSpreadsheet = new sap.ui.export.Spreadsheet(mSettings);
  oSpreadsheet.build();

注销
1k 声望1.6k 粉丝

invalid