找回密码
 立即注册

QQ登录

只需一步,快速开始

注册会员

10

主题

27

帖子

89

积分

注册会员

积分
89

注册会员   /  发表于:2021-11-1 12:01  /   查看:2851  /  回复:10
1金币
本帖最后由 Derrick.Jiao 于 2021-11-18 18:00 编辑

版本
  1. "@grapecity/spread-excelio": "14.2.1",
  2.     "@grapecity/spread-sheets": "14.2.1",
  3.     "@grapecity/spread-sheets-charts": "14.2.1",
  4.     "@grapecity/spread-sheets-react": "14.2.1",
复制代码
场景:
  当前的需求场景是保存的时候需要讲 workbook 对象通过JSON.Stringfy 转为字符串传给后端,然后回显的时候通过JSON.parse 转为对象再传给spreadSheet.  但是发现每次JSON.Stringfy 转化后的字符串过长影响 性能,所以对于workbook 对象能否删减一些信息 。比较 workbook 对象,发现data的数据过大,因此想问一下是否可以优化

附件是我的json, 谢谢

ss.json.zip

2.1 MB, 下载次数: 39

最佳答案

查看完整内容

这边在macOS中调用toJSON测试也是相同的结果,也是34M左右。另外,这边经过调研,这个值也是在一个合理的范围。 你可以尝试解压缩提供的excel文件,然后会得到一个25MB左右的文件夹。或者压缩34M的json,然后会得到1.2MB的内容。 这就是为什么存在1.3M比34M的情况。就此表单而言,目前优化的控价并不大。 我们在v15中有一个优化的方案,使用之后能够一定程度减少json的大小。

10 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-1 12:01:49
来自 11#
杰 发表于 2021-11-18 17:31
是不是我用的 mac ,用的wps 导出的文件体积 约 74MB

这边在macOS中调用toJSON测试也是相同的结果,也是34M左右。另外,这边经过调研,这个值也是在一个合理的范围。

你可以尝试解压缩提供的excel文件,然后会得到一个25MB左右的文件夹。或者压缩34M的json,然后会得到1.2MB的内容。
这就是为什么存在1.3M比34M的情况。就此表单而言,目前优化的控价并不大。

我们在v15中有一个优化的方案,使用之后能够一定程度减少json的大小。

微信图片_20211118175104.jpg
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-1 14:06:04
2#
你好,这边打开你的json,发现这个是表单额toJSON而不是工作簿的toJSON,另外,你发的json里面含有两个重复的json,请确认发送的json是否正确。建议你将原始的Excel文件提供一下,这边测试看导出的json大小是多少。
回复 使用道具 举报

注册会员   /  发表于:2021-11-17 19:53:12
3#
Derrick.Jiao 发表于 2021-11-1 14:06
你好,这边打开你的json,发现这个是表单额toJSON而不是工作簿的toJSON,另外,你发的json里面含有两个重复 ...

米好 附件是我的原始文件。s.js 是我通过toJSON 得到的对象,
我的疑问点:

1.  为什么通过toJSON 得到的对象那么大,大概120 MB?
2.  对于得到的json 有没有办法 可以删除一些无用的信息,因为基于我们当前的业务场景,  太占用浏览器性能了

s的副本.js.zip

2.94 MB, 下载次数: 50

OP_03_01-1022.xlsx.zip

1.69 MB, 下载次数: 50

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-18 09:58:32
4#
杰 发表于 2021-11-17 19:53
米好 附件是我的原始文件。s.js 是我通过toJSON 得到的对象,
我的疑问点:

我这边将提供的excel文件导入到在线表格编辑器,然后导出json,大小约为32M左右,可以到下方链接试一下。
https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html

另外,请问你的json是如何产生的呢?请提供对应的demo,这边调研一下。
回复 使用道具 举报

注册会员   /  发表于:2021-11-18 11:58:06
5#
Derrick.Jiao 发表于 2021-11-18 09:58
我这边将提供的excel文件导入到在线表格编辑器,然后导出json,大小约为32M左右,可以到下方链接试一下。 ...

hi,  附件是我的demo , 参照官网提供的demo,  我大部分复现了我们当前的场景,在我的demo 中,我们通过spread.toJSON 的到对象大小目前为74MB 左右,这个是在只有一个sheet 的情况下, 虽然小于我之前提到的120MB, 但是也远大于您所说的32MB. 而对于我们的业务场景,顾问可能一次一个workbook 就包含六七个相似复杂的 静态表,这会导致我们得到的对象 大概在300~400 MB 之前, 这导致我们的浏览器占用的内存太高了, 很容易导致我们的浏览器奔溃。备注: 这还是不包含顾问所绑定的脚本的情况下, 一般我们的顾问在这样的sheet 页 上的脚本数量大约在 6~10万个单元格行左右。

因此,我的需求如下:
1. 期望可以提供一种优化方式, 以我提供的demo excel 为例, 通过toJSON 得到的 对象大小越小越好,这样我们在保存时处理数据对浏览器占用的内存也会越小;
2. 对于我们得到的JSON 对象, 能否删除一些无用的信息, 因为在我们看来,有很多重复的字段

谢谢,期望尽快收到你的回复!


sjs-react-app.zip

2.61 MB, 下载次数: 52

OP_03_01-1022.xlsx.zip

1.69 MB, 下载次数: 44

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-18 13:47:39
6#
本帖最后由 Derrick.Jiao 于 2021-11-18 13:50 编辑
杰 发表于 2021-11-18 11:58
hi,  附件是我的demo , 参照官网提供的demo,  我大部分复现了我们当前的场景,在我的demo 中,我们通过s ...

这边未能成功运行附件的demo,请确认dem是否完整以及提供完整的操作步骤。
image.png938850097.png

另外,这边分析了表单存在大量的自定义命名样式,请确认这些样式是否需要,不需要则清除。
image.png267228392.png
回复 使用道具 举报

注册会员   /  发表于:2021-11-18 15:31:28
7#
Derrick.Jiao 发表于 2021-11-18 13:47
这边未能成功运行附件的demo,请确认dem是否完整以及提供完整的操作步骤。

你好 附件是我最新的 复现demo.,   您需要执行pnpm install 后,执行 pnpn run start ;

运行界面如下
image.png111725157.png

接着导入我提供的 excel 文件 ,点击红色文字 活着打开控制台,  你会发现 打印的JSON 有将近74mb ,

sjs-react-app.zip

587.63 KB, 下载次数: 46

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-18 16:56:32
8#
杰 发表于 2021-11-18 15:31
你好 附件是我最新的 复现demo.,   您需要执行pnpm install 后,执行 pnpn run start ;

运行界面如下  ...

这边按照步骤运行demo后,导出的json是大约在34M左右。 image.png177074584.png

另外,关于这个表单这边也提供调研,看下是否有优化的地方,有进展也会在本帖更新。
回复 使用道具 举报

注册会员   /  发表于:2021-11-18 17:14:10
9#
Derrick.Jiao 发表于 2021-11-18 16:56
这边按照步骤运行demo后,导出的json是大约在34M左右。

另外,关于这个表单这边也提供调研,看下是否 ...

请问你们导出的json 是通过 spread.toJSON(). 得到的吗?  
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部