找回密码
 立即注册

QQ登录

只需一步,快速开始

98785020

注册会员

8

主题

25

帖子

99

积分

注册会员

积分
99
98785020
注册会员   /  发表于:2018-1-22 18:41  /   查看:3450  /  回复:8
使用spread设计器加载xlxs文件,加载时间过长,
使用spreadjs加载对应的.ssjson文件,spread.fromJSON渲染时间同样过长,实测渲染该文件大概需要50s左右。
不知道到底是哪个数据,导致渲染时间如此过长,附件里为对应的.xlxs文件和.ssjson文件

excel_ssjson文件.zip

94.85 KB, 下载次数: 121

8 个回复

倒序浏览
98785020
注册会员   /  发表于:2018-1-23 09:51:39
沙发
补充下,附件里的文件是通过 .xlsm文件转成.xlxs
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-1-23 11:00:50
板凳
我这边已经重现您的问题了,还在找问题原因,有情况我会第一时间给您回复。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-1-23 17:54:41
地板
您好,原因是这样的,您的Excel中数据验证有很多不必要的信息导致详情将附件文件
其中
image.png419589537.png
上图所示数据验证有非常大的无用行,无用列,删掉无用的验证后恢复正常。

sheet2.xml

156.45 KB, 下载次数: 105

回复 使用道具 举报
98785020
注册会员   /  发表于:2018-1-26 09:56:25
5#
ClarkPan 发表于 2018-1-23 17:54
您好,原因是这样的,您的Excel中数据验证有很多不必要的信息导致详情将附件文件
其中

不对啊,我提供的是json跟.xlxs文件,json文件是通过设计器加载.xlxs转换的,您至少告诉我怎么通过.xlxs删除以上内容啊。office跟wps打开该xlxs文件都不存在渲染过长的问题,那设计器作为一款客户端软件,它的加载是否也应该如office或wps一样至少能及时加载出来呢。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-1-26 14:37:30
6#
本帖最后由 ClarkPan 于 2018-1-26 14:45 编辑

您 .xlsm文件转成.xlsx是怎么转的,造成问题的原因也是在这里,解决也需要在这里进行解决。另外OFFICE和spreadjs的实现机制都不同,性能方面有差异很正常,首先OFFICE这类桌面程序是一个进程,而spreadjs基于浏览器,浏览器属于桌面程序是一个进程,那么spreadjs运行起来就能是进程中的一个线程。进程可以直接调用系统资源,而线程调用必须依托于进程。所以从资源来将spreadjs本身就比office少很多。那么即使是同样的算法,计算的速度肯定会有差距。何况您问题Excel解压后打开,发现数据验证包含了很多无用的单元格,数量级非常大最大列数到达了WLW983084列。这么多东西加载起来当然慢了。而您正常使用压根没有这么多单元格。
所以原因应该是您.xlsm文件转成.xlxs造成的,所以解决需要从这里入手去优化您的xlsx文件。
回复 使用道具 举报
98785020
注册会员   /  发表于:2018-1-26 18:47:58
7#
ClarkPan 发表于 2018-1-26 14:37
您 .xlsm文件转成.xlsx是怎么转的,造成问题的原因也是在这里,解决也需要在这里进行解决。另外OFFICE和spr ...

spread设计器,是内置了spreadjs来实现的?
回复 使用道具 举报
98785020
注册会员   /  发表于:2018-1-26 18:48:07
8#
本帖最后由 98785020 于 2018-1-26 18:50 编辑
ClarkPan 发表于 2018-1-26 14:37
您 .xlsm文件转成.xlsx是怎么转的,造成问题的原因也是在这里,解决也需要在这里进行解决。另外OFFICE和spr ...

我说的是spread设计器啊,没说spreadjs,spread设计器不是作为一个客户端软件么?难道他的实现原理是内置了spreadjs来实现的?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-1-26 19:37:08
9#
spread设计器和spreadjs内部实现方式是一样的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部