innerwang 发表于 2024-12-16 11:21:33

是否可以基于当前工作簿fork 出一个副本




场景需求为:使用 sheets.io 导出工作簿的内容(导出为 excel)用于其他功能,在导出前需要默认选中第一个 sheet 及每个 sheet 需要默认选中左上角第一个单元格,且不可以改变当前编辑态的选中状态。

有没有什么方式可以做到呢?

Lynn.Dou 发表于 2024-12-16 16:51:25

您好,
可以在导出前创建一个spread副本,对副本spread做二次操作之后导出。这样原先的spread就不会受影响,无需恢复。

以下为示例代码:
// 创建副本
var newSpread = new GC.Spread.Sheets.Workbook();
// option根据业务需要自行定义,如 是否包含数据源
newSpread.fromJSON(spread.toJSON(option));
// 对副本newSpread做二次操作,之后导出xlsx
......
newSpread.export()

innerwang 发表于 2024-12-16 17:11:56

Lynn.Dou 发表于 2024-12-16 16:51
您好,
可以在导出前创建一个spread副本,对副本spread做二次操作之后导出。这样原先的spread就不会受影响 ...

若内容较多时,比如包含图片,行列很多,这个时候 fromJSON 会存在比较耗时的问题吗

Lynn.Dou 发表于 2024-12-17 11:14:45

具体耗时需要您实际测试下,看是否在接受范围内。
还有一种思路,在导出前先记录当前的选中状态再修改,导出结束后恢复,具体您可以实际验证下。

innerwang 发表于 2024-12-17 15:00:52

Lynn.Dou 发表于 2024-12-17 11:14
具体耗时需要您实际测试下,看是否在接受范围内。
还有一种思路,在导出前先记录当前的选中状态再修改, ...

了解了,谢谢

Lynn.Dou 发表于 2024-12-17 16:23:52

您客气了,那本帖就先结贴了,有问题欢迎另开新帖交流。
页: [1]
查看完整版本: 是否可以基于当前工作簿fork 出一个副本