请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

一叶知秋@

金牌服务用户

7

主题

15

帖子

62

积分

金牌服务用户

积分
62
一叶知秋@
金牌服务用户   /  发表于:2025-3-31 14:29  /   查看:109  /  回复:4
1金币
目前项目中用了的是 fromJSON(json, ...) 的方法加载整个工作表的数据,但是数据多的时候还是需要一些时间,目前通过文档查阅了性能优化相关的方法:
1、使用了增量加载方法,同时初次加载过程不进行公式计算
image.png570893249.png
2、使用了渲染挂起 suspendPaint & resumePaint

------------------------------


目前使用上面两种加载优化后,总体上40多张的工作表,数据量大概不到10000而已,大概需要1.6秒这样,后续可能数据量更多,不知道还有没有其他优化方法可以继续提升加载的时间;亦或者如题有没有点击后在去加载对应的sheet数据的操作呢?

最佳答案

查看完整内容

如果您使用的是Workbook:fromJSON(),默认情况下,导入时不忽略各sheet已包含的公式、样式等,有公式相应地就会在导入后重新计算,如下图所示: 如果文件中包含的公式较多,重新计算过程中会标脏,这部分工作消耗一定的时间性能,再加上样式的渲染,整体上会对加载速度有影响。从这几个允许设置的选项考虑,如果您的业务场景支持舍弃样式,可以在反序列化时设置ignoreStyle属性值为true;同样对公式也可以设置ignoreFormula ...

4 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2025-3-31 14:30:00
来自 4#
一叶知秋@ 发表于 2025-3-31 20:50
我已经使用了fromJSON的增量加载,我是说还有没有其他更多的优化;懒加载用的是open的方法,不太符合目前 ...

如果您使用的是Workbook:fromJSON(),默认情况下,导入时不忽略各sheet已包含的公式、样式等,有公式相应地就会在导入后重新计算,如下图所示:
1743469224242.png992144775.png

如果文件中包含的公式较多,重新计算过程中会标脏,这部分工作消耗一定的时间性能,再加上样式的渲染,整体上会对加载速度有影响。从这几个允许设置的选项考虑,如果您的业务场景支持舍弃样式,可以在反序列化时设置ignoreStyle属性值为true;同样对公式也可以设置ignoreFormula为true;如果需要保留公式,那么可以设置doNotRecaculateAfterLoad属性值为true,在加载完成后不执行重新计算。结合incrementalLoading,理论上来说是可以缩短打开文件过程。

理解您的业务场景中需要打开的是一个包含完整数据的文件对应的序列化json数据,所以能提供的优化策略如上所述。如果是一个文件模板,那么完全可以在点击切换每个sheet页时使用数据绑定实时渲染。

您可以参考上述测试评估,如果性能方面还是不能如您预期,可以提供一个源文件,我们帮您分析调研下。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-3-31 18:02:09
2#
您好!增量加载、懒加载等设置选项即可以按需加载,按照您的描述,这两个设置选项可以满足您的需要。

可以参考如下链接中的博客了解详情:
懒加载策略
回复 使用道具 举报
一叶知秋@
金牌服务用户   /  发表于:2025-3-31 20:50:17
3#
Wilson.Zhang 发表于 2025-3-31 18:02
您好!增量加载、懒加载等设置选项即可以按需加载,按照您的描述,这两个设置选项可以满足您的需要。

可 ...

我已经使用了fromJSON的增量加载,我是说还有没有其他更多的优化;懒加载用的是open的方法,不太符合目前的项目改动
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:7 天前
5#
您好,由于本帖较长时间没有回复,本帖先做结贴处理了,后续如您有其他问题,欢迎您开新帖提问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部