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