找回密码
 立即注册

QQ登录

只需一步,快速开始

xiangbozhong

注册会员

7

主题

16

帖子

51

积分

注册会员

积分
51
xiangbozhong
注册会员   /  发表于:2021-4-28 12:09  /   查看:1866  /  回复:7
有两个问题想请教:1、Workbook workbook = new Workbook();
workbook.fromJson(tmptSettingDto.getTmptJsonStr());
tmptSettingDto.getTmptJsonStr()这个json串大概有4MB,这里转换成workbook对象要花7~8秒,有办法优化吗?2、json传有4MB,但是转换成excel只有几百KB,这是为什么,有办法压缩json大小吗?

7 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-28 12:14:25
沙发
问题1:您可以和考虑增量加载,当导入大文件时建议使用增量加载以帮助优化初始加载时间。
https://demo.grapecity.com.cn/sp ... ntal-loading/purejs

问题2:两个存储的格式不同,是两个不同的东西,大小也会有所不同。
这有一个压缩JSON文件示例:https://jsrun.net/AvZKp/edit
客户写的博客也可以参考:https://blog.csdn.net/qq_34735535/article/details/84066461
回复 使用道具 举报
xiangbozhong
注册会员   /  发表于:2021-4-28 15:09:24
板凳
DerrickJiao 发表于 2021-4-28 12:14
问题1:您可以和考虑增量加载,当导入大文件时建议使用增量加载以帮助优化初始加载时间。
https://demo.gr ...

我们加载的数据量并不大,只有一百多条,不需要做增量加载,数据上只是设置了公式,整个json串就有4MB左右了, workbook.fromJson()主要耗时在从json转成workbook对象上,达到7、8秒,有办法优化吗?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-28 15:15:53
地板
xiangbozhong 发表于 2021-4-28 15:09
我们加载的数据量并不大,只有一百多条,不需要做增量加载,数据上只是设置了公式,整个json串就有4MB左 ...

您可以参考这篇帖子,启用spread.options.calcOnDemand = true;并在表单加载的时候关闭计算。
https://gcdn.grapecity.com.cn/fo ... &extra=page%3D5
回复 使用道具 举报
xiangbozhong
注册会员   /  发表于:2021-4-28 15:23:12
5#
DerrickJiao 发表于 2021-4-28 15:15
您可以参考这篇帖子,启用spread.options.calcOnDemand = true;并在表单加载的时候关闭计算。
https://g ...

不是前端哈,是后端转换,我们采购的gcexcel转成workbook对象。

tmptSettingDto = tmptColFieldRelService.queryTmplateColField(tmptSettingDto);
        tmptSettingDto.setYear(tmptTaskDto.getYear());
        tmptSettingDto.setItemName(tmptTaskDto.getItemName());
        log.info("模板数据查询完成");
        Workbook workbook = new Workbook();
        workbook.fromJson(tmptSettingDto.getTmptJsonStr());

        log.info("数据查询開始");
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-28 15:29:30
6#
xiangbozhong 发表于 2021-4-28 15:23
不是前端哈,是后端转换,我们采购的gcexcel转成workbook对象。

tmptSettingDto = tmptColFieldRelSer ...

一般来说不会这么慢,建议您用最新版本4.0.5尝试。升级后,仍未解决您的问题,建议您提供能复现问题的demo。我们这边给您做进一步调研,看下有没有其他优化的方案。
回复 使用道具 举报
xiangbozhong
注册会员   /  发表于:2021-4-28 15:33:24
7#
DerrickJiao 发表于 2021-4-28 15:29
一般来说不会这么慢,建议您用最新版本4.0.5尝试。升级后,仍未解决您的问题,建议您提供能复现问题的dem ...

4.0.5比4.0.0有性能提升?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-28 15:40:01
8#
xiangbozhong 发表于 2021-4-28 15:33
4.0.5比4.0.0有性能提升?

相对来说没有太大的提升,更多的是bug的修复,建议您提供能复现问题的demo,我们这边调研看下是否有优化的空间。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部