使用 SAP UI5 sap.ui.export.Spreadsheet API 进行 Excel 导出的一些限制

开发人员只能导出 sap.ui.export.EdmType 中列出的原始单元格数据类型,如下图所示:

使用 SAP UI5 sap.ui.export.Spreadsheet API 进行 Excel 导出的一些限制_第1张图片

Excel Export API 不支持 UI5 表格单元格中的图标、图像、复选框和复杂控件。

也不支持数据绑定中的自定义格式化程序。

导出表的大小受可用浏览器内存的限制。导出大数据集可能会导致内存溢出错误。因此,请勿将 sap.ui.export.Spreadsheet 与在台式计算机上包含超过 2,000,000 个表格单元格和在移动设备上包含超过 100,000 个单元格的数据表一起使用。在这种情况下,请考虑专门的导出解决方案。例如,MS Excel® 可以直接从 OData 服务导入电子表格,无需任何 UI 的辅助。

导出过程尽可能在工作线程(浏览器的 Web Worker)中运行。但是,对本机 XMLHttpRequest 事件的代码注入在工作环境中不可用。因此,如果应用程序使用 Mock Server来获取表数据,则应将导出设置中的 worker 参数设置为 false。

对于导出层次级别信息,最大层次深度为 8。此限制来自 Office Open XML 标准和可以打开此类文件的程序。 sap.ui.export.Spreadsheet 允许路由导出更多层级,但如果层级深度超过值 8,则在打开生成的文件时它们可能无法正确显示。

列配置必须至少包含一列才能执行导出过程。如果没有配置列,导出将被取消。

如果在表中使用导出,则不会导出显示聚合数据的任何行(即合计行)。

workbook.context 对象上的属性 sheetName 和 metaSheetName 每个都限制为 31 个字符。如果它们的值超过此最大长度,则该值将被截断。对于有 ABAP 开发经验的编程人员来说,想必对这个限制并不会感到陌生。

一个小窍门:如果我们想自定义导出的 Excel 存储到本地的路径,可以使用这个 beforeSave hook:

beforeSave 事件在生成的文件保存到文件系统之前触发。 此事件允许开发人员阻止关闭 ExportDialog 并将文件保存到本地设备的默认操作。 如果默认情况下被阻止,事件处理程序负责关闭和销毁对话框。

你可能感兴趣的:(使用 SAP UI5 sap.ui.export.Spreadsheet API 进行 Excel 导出的一些限制)