找回密码
 立即注册

QQ登录

只需一步,快速开始

yuanxu1614

初级会员

45

主题

138

帖子

433

积分

初级会员

积分
433

微信认证勋章

yuanxu1614
初级会员   /  发表于:2020-1-3 15:12  /   查看:9389  /  回复:14
200金币
问题:在spreadjs版本12中使用的copysheet代码在spreadjs13版本中不适用(会崩掉“message”:"Uncaught TypeError: Cannot read property ''getSheetFromName" of undefined)。
相关代码:
var sheet = spread.getSheetFromName("折线图");
var  newSheet  = new GC.Spread.Sheets.Worksheet("newSheet");

newSheet.formJSON(JSON.parse(JSON.stringify(sheet.toJSON())));
newSheet.name(zhexiantu);
spread.addSheet(3,newSheet);



然后解决方法,将红色的代码位置变换了以下就好用了。
相关代码:
var sheet = spread.getSheetFromName("折线图");

var  newSheet  = new GC.Spread.Sheets.Worksheet("newSheet");

spread.addSheet(3,newSheet);

newSheet.formJSON(JSON.parse(JSON.stringify(sheet.toJSON())));

newSheet.name(zhexiantu);


红色代码变更位置后出现的相关问题:

红色代码变更之前(12版本),总代码耗时9秒;

红色代码变更之后(13版本),总代码耗时59秒;

求解,为什么代码移动了一下位置,相差了50秒事件,还有,针对于13版本这个问题,能不能给个优化的方法。






demo.zip

78.43 KB, 下载次数: 584

demo.zip

78.43 KB, 下载次数: 581

14 个回复

正序浏览
Fiooona
论坛元老   /  发表于:2020-1-7 17:04:04
14#
本帖最后由 Fiooona 于 2020-1-8 15:02 编辑

感谢解释,这个问题已经复现,我们需要进一步调研,有结果会尽快回复您,问题编号1312
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
atongmu82207
注册会员   /  发表于:2020-1-7 14:19:49
13#
补充一下,
我们的业务是:
第一个sheet里边有8个图,每个图有25个系列
第二个sheet里边有366行,100列的数据。第一个sheet的前4个图关联着这些数据(每个图的25个系列占用366行25列)。
第三个sheet里边有366行,100列的数据。第一个sheet的后4个图关联着这些数据(每个图的25个系列占用366行25列)。
上边的三个sheet有10套。

目前我们的做法是:
模板只放这3个sheet。然后拷贝9份出来。

也就是在V12.1.4的日文版底下拷贝9份。循环执行以下代码9次。花费时间是9
    var sheet = spread.getSheetFromName("折线图");
    var  newSheet  = new GC.Spread.Sheets.Worksheet("newSheet");
    newSheet.formJSON(JSON.parse(JSON.stringify(sheet.toJSON())));
    newSheet.name(zhexiantu);
    spread.addSheet(3,newSheet);
但是在V13.0.1的英文版底下,循环执行以下代码9次,花费时间是59
    var sheet = spread.getSheetFromName("折线图");
    var  newSheet  = new GC.Spread.Sheets.Worksheet("newSheet");
    spread.addSheet(3,newSheet);
    newSheet.formJSON(JSON.parse(JSON.stringify(sheet.toJSON())));
    newSheet.name(zhexiantu);


回复 使用道具 举报
yuanxu1614
初级会员   /  发表于:2020-1-7 13:50:38
12#
Fiooona 发表于 2020-1-7 10:12
您之前具体用的V12的那个版本? 我用V12.2 与V13效果一样的,V12.0需要先添加sheet 再fromJSON ,否则 就出 ...

使用12.1.4版本循环运行这个代码:
var sheet = spread.getSheetFromName("折线图");
var  newSheet  = new GC.Spread.Sheets.Worksheet("newSheet");
newSheet.formJSON(JSON.parse(JSON.stringify(sheet.toJSON())));
newSheet.name(zhexiantu);
spread.addSheet(3,newSheet);

使用13.0.1版本运行的这个代码:
var sheet = spread.getSheetFromName("折线图");
var  newSheet  = new GC.Spread.Sheets.Worksheet("newSheet");
spread.addSheet(3,newSheet);
newSheet.formJSON(JSON.parse(JSON.stringify(sheet.toJSON())));
newSheet.name(zhexiantu);

这样时间不太一样,在我这运行第二种可慢了,但是改成第一种就特别快
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-1-7 10:12:26
11#
您之前具体用的V12的那个版本? 我用V12.2 与V13效果一样的,V12.0需要先添加sheet 再fromJSON ,否则 就出错了。
还是未能复现您的问题,最好能提供下直接复现问题的Demo ,方便沟通
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
yuanxu1614
初级会员   /  发表于:2020-1-6 18:29:09
10#
Fiooona 发表于 2020-1-6 18:19
明白了,那现在就是性能的问题了,用您提供的ssjson加载并没有明显性能问题大概2-3秒加载,因为我们需要能 ...

就是循环不停的复制,现在一个用了2~3秒,那循环30次,时间就会很久了,可是变换之前的代码循环30次,是用不了这么久的,这到底是为啥啊,为啥13版本之后,需要这么写了呢,能不能优化一下复制用的时间呀。
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-1-6 18:19:23
9#
明白了,那现在就是性能的问题了,用您提供的ssjson加载并没有明显性能问题大概2-3秒加载,因为我们需要能复现用户的问题才能给出对应的解决方案,所以要加载“59秒”这个问题 需要怎么复现呢? 可以提供复现步骤吗?
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
yuanxu1614
初级会员   /  发表于:2020-1-6 17:24:00
8#
Fiooona 发表于 2020-1-6 16:56
那麻烦您做一下对应的修改,先添加sheet ,再 用fromJSON复制一份sheet页:

这样是可以解决,又回到了我最初的问题了,这样互换的话,用时会很长,有没有解决办法,因为我们不只是复制这一个页,大概有30个。
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-1-6 16:56:16
7#
那麻烦您做一下对应的修改,先添加sheet ,再 用fromJSON复制一份sheet页:
  1. var sheet = spread.getSheetFromName("折线图");
  2. var  newSheet  = new GC.Spread.Sheets.Worksheet("newSheet");
  3. spread.addSheet(3,newSheet);
  4. spread.suspendPaint();
  5. newSheet.fromJSON(JSON.parse(JSON.stringify(sheet.toJSON())));
  6. newSheet.name('zhexiantu');
  7. spread.resumePaint();
复制代码
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
yuanxu1614
初级会员   /  发表于:2020-1-6 16:03:18
6#
yuanxu1614 发表于 2020-1-6 15:36
这个和没有license有没有关系啊?我试了你这个是好用的,我们12版本是有license的,13版本没有,会不会和 ...

麻烦你看一下,这样写好像就是崩掉了。

13.0.2Demo (2).zip

2.19 MB, 下载次数: 641

回复 使用道具 举报
yuanxu1614
初级会员   /  发表于:2020-1-6 15:36:17
5#
Fiooona 发表于 2020-1-3 18:02
我试的13.0.1也没有问题,

这个和没有license有没有关系啊?我试了你这个是好用的,我们12版本是有license的,13版本没有,会不会和这个有关系啊
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部