找回密码
 立即注册

QQ登录

只需一步,快速开始

白鱼

中级会员

61

主题

227

帖子

586

积分

中级会员

积分
586
白鱼
中级会员   /  发表于:2024-8-14 17:56  /   查看:593  /  回复:14
1金币



问题描述:
当前spread存在sheet的场景下,导入其他excel文件部分sheet页,我使用sheet.fromJSON方式导入每一张sheet。
从结果上来看,整个excel fromJSON后使用起来比较流畅,但是分sheet导入后非常卡,这是为什么?可以怎么优化吗?(从sheet切换、滚动不同层面看)

同时我也放了一个json文件,是分sheet导入后再导出的。重新导入也非常卡顿。

详情看附件,导入excel文件越往下越卡,原始文件是 多sheet上传卡顿测试.xlsx 这一个,其他的文件是删减之后的。随着文件越来越小,卡顿程度逐渐降低,但是用起来不流畅。
image.png92600707.png

demo-0814.zip

13.59 MB, 下载次数: 66

14 个回复

正序浏览
白鱼
中级会员   /  发表于:2024-8-19 14:48:49
14#
Ellia.Duan 发表于 2024-8-19 14:10
您好,在您的代码基础上,分别导入多个文件,并未出现分sheet加载后,滚动卡顿问题,sheet切换卡顿问题, ...

image.png668630370.png

不会有重名,我这里没有处理是因为没有重名的,你是不是用了哪个初始化文件?
我重新下载附件测试,还是能复现,录屏文件太大无法上传。
你是不是把我上次说的 spread.options.calcOnDemand = true; 这行代码注释了?注释之后暂时就不会卡顿了,所以我问你这个calcOnDemand 按需计算字段含义是什么;
第二点分sheet导入,我的意思是划分sheet导入有没有影响,如果直接fromJSON导入,也没有这个卡顿问题。是不是还是calcOnDemand 这个字段的影响?
其次是按照sheet导入,会花费比较长的时间,这个地方是什么原因?能不能优化?
image.png700625304.png
image.png687513122.png
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-8-19 14:10:07
13#
Ellia.Duan 发表于 2024-8-15 11:44
重置spread ,是因为要多次导入Excel文件,为了排除其他Excel的影响,当然可以保留原始json的内容。
所 ...

您好,在您的代码基础上,分别导入多个文件,并未出现分sheet加载后,滚动卡顿问题,sheet切换卡顿问题,如下动图所示:
sheet点击.gif


观察到您导入sheet的这部分逻辑似乎有点问题:
image.png465089415.png

因为您demo中大部分sheet都是同样的名称,所以导入后,会有大部分sheet名重复的问题,
这里打印下:
image.png782168578.png

接着在else中添加新增sheet的相关代码:
  1. else{
  2.             let name = new Date().getTime()
  3.             let newSheet = new Worksheet(sheetInfo.sheetName+name)
  4.             spread.addSheet( spread.getSheetCount(),newSheet);
  5.             sheetInfo.json.name = sheetInfo.sheetName+name
  6.             sheet.fromJSON(sheetInfo.json);

  7.         }
复制代码
而添加如上代码后,也未能复现切换sheet以及,滚动卡顿问题,
如下动图所示:
sheet切换2.gif
切换sheet3.gif



所以未能复现您的问题。
如果有复现问题的过程,也请给出。

回复 使用道具 举报
白鱼
中级会员   /  发表于:2024-8-19 13:41:16
12#
Ellia.Duan 发表于 2024-8-15 17:56
嗯嗯 ,还在调研中,有进展会联系您。

你好,这个问题有进展了吗
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-8-15 17:56:32
11#
嗯嗯 ,还在调研中,有进展会联系您。
回复 使用道具 举报
白鱼
中级会员   /  发表于:2024-8-15 13:11:56
10#
Ellia.Duan 发表于 2024-8-15 11:44
重置spread ,是因为要多次导入Excel文件,为了排除其他Excel的影响,当然可以保留原始json的内容。
所 ...

导入慢的问题,后续麻烦也继续跟进一下,这个问题也需要看,只是优先级比切换sheet卡顿优先级低一些。感谢
回复 使用道具 举报
白鱼
中级会员   /  发表于:2024-8-15 13:08:37
9#
Ellia.Duan 发表于 2024-8-15 11:44
重置spread ,是因为要多次导入Excel文件,为了排除其他Excel的影响,当然可以保留原始json的内容。
所 ...

好的,辛苦
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-8-15 11:44:36
8#
白鱼 发表于 2024-8-15 11:22
我说的慢不是指导入速度(虽然也慢,但毕竟是一次性的),现在看的是导入之后,切换sheet和滚动的速度。 ...

重置spread ,是因为要多次导入Excel文件,为了排除其他Excel的影响,当然可以保留原始json的内容。
所以需要为您调研的问题是:
1、calcOnDemand的true/false 带来什么影响
2、分sheet加载后,滚动以及sheet切换,的卡顿问题。

我将深入调研这两个问题,有进展会及时联系您。
回复 使用道具 举报
白鱼
中级会员   /  发表于:2024-8-15 11:22:04
7#
Ellia.Duan 发表于 2024-8-15 11:13
您好,如果仅导入Excel文件,测试发现,只有第一个Excel文件【5张图表测试.xlsx】 耗时较长,其他文件均在 ...

我说的慢不是指导入速度(虽然也慢,但毕竟是一次性的),现在看的是导入之后,切换sheet和滚动的速度。麻烦先看下导入后切换sheet和滚动时卡顿的问题。而且这里分sheet导入的时候,原来的spread中一定会存在sheet,最好不要将原来的spread清空
回复 使用道具 举报
白鱼
中级会员   /  发表于:2024-8-15 11:15:52
6#
白鱼 发表于 2024-8-15 11:11
第一点这个意思是不是,我开启了按需计算,切换sheet、滚动时就是会变得卡顿一些?因为需要重新计算相关 ...

并且当我开启按需计算的时候,非常卡顿,这里是必须要关闭按需计算吗?关闭按需计算,是否会导致其他场景出现问题?
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-8-15 11:13:45
5#
您好,如果仅导入Excel文件,测试发现,只有第一个Excel文件【5张图表测试.xlsx】 耗时较长,其他文件均在2-3秒可以成功导入。

image.png815674133.png
附上测试文件: V16_designer.html (9.49 KB, 下载次数: 48)
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部