找回密码
 立即注册

QQ登录

只需一步,快速开始

飞翔的企鹅1

注册会员

4

主题

17

帖子

43

积分

注册会员

积分
43
最新发帖
飞翔的企鹅1
注册会员   /  发表于:2024-11-19 16:21  /   查看:53  /  回复:2
1金币
本帖最后由 飞翔的企鹅1 于 2024-11-19 16:26 编辑

因业务需求,需要进行批量sheet模板复制,然后渲染内容。现在循环复制200个sheet还好,多了的话就会越复制越慢,用的是下面的实现方式


  1.   for (let index = 0; index < 300; index++) {
  2.     console.log('模板复制进度', (index + 1) + '/' + 300);
  3.     let copySheet = new GC.Spread.Sheets.Worksheet("Sheet" + (index + 1));
  4.     //复制工作簿
  5.     spread.addSheet(
  6.       spread.getSheetCount(),
  7.       copySheet
  8.     );
  9.     let copy_data = spread.sheets[index].toJSON();
  10.     copy_data.name = "Sheet" + (index + 1);
  11.     copy_data.isSelected = false;
  12.     copySheet.fromJSON(copy_data);
  13.   }
复制代码

2 个回复

倒序浏览
飞翔的企鹅1
注册会员   /  发表于:6 天前
沙发
数据绑定渲染都很快,就这个复制逻辑越复制到后面效率越慢
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:6 天前
板凳
您好!我在最新17.1.9版本使用您提供的代码片段测试,可以顺畅的完成sheet复制,如下动图所示:
复制模板测试性能.gif

如果使用的版本较早,可以升级至新版本测试:
https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html

如果在新版本测试仍能复现问题,需要您提供一个能够复现问题的demo。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部