本 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();