找回密码
 立即注册

QQ登录

只需一步,快速开始

鸳鸯配2024

金牌服务用户

30

主题

163

帖子

413

积分

金牌服务用户

积分
413
鸳鸯配2024
金牌服务用户   /  发表于:2024-8-22 16:18  /   查看:898  /  回复:15
excel文件比较大,大概20M 左右。

现在每次用 spread.toJSON() 方法保存的时候,会慢很多。
如果用 pako 插件的话

pako.gzip(JSON.stringify(dataJson()), {to: "string"})


在保存的时候,会直接卡死,想问下,在保存存储的时候,还有哪些优化空间啊?

15 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2024-8-22 16:41:32
沙发
您好!使用toJSON()方法时可以选择性屏蔽或包含某些内容,如下图所示,您可以尝试设置相关导出属性看能否解决问题。
1724315945368.png623523254.png

请参考官网教程了解详情:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/workbook/json-serialization/purejs

回复 使用道具 举报
鸳鸯配2024
金牌服务用户   /  发表于:2024-8-22 17:04:12
板凳
Wilson.Zhang 发表于 2024-8-22 16:41
您好!使用toJSON()方法时可以选择性屏蔽或包含某些内容,如下图所示,您可以尝试设置相关导出属性看能否解 ...

存和取,我们暂时没法屏蔽某些内容。

有其它的方法压缩吗?
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-22 17:26:19
地板
鸳鸯配2024 发表于 2024-8-22 17:04
存和取,我们暂时没法屏蔽某些内容。

有其它的方法压缩吗?

您可以尝试下保存文件为.sjs格式文件,.sjs文件本就是压缩文件,相较于.ssjson文件其体积更小。
您可以参考官网文档了解详情:
https://demo.grapecity.com.cn/sp ... %8C%87%E5%8D%97#sjs
https://demo.grapecity.com.cn/sp ... t-doc-content_title
回复 使用道具 举报
鸳鸯配2024
金牌服务用户   /  发表于:2024-8-22 17:52:14
5#
Wilson.Zhang 发表于 2024-8-22 17:26
您可以尝试下保存文件为.sjs格式文件,.sjs文件本就是压缩文件,相较于.ssjson文件其体积更小。
您可以 ...

我们是属于高频操作,不能用 sjs 格式文件去存储。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-22 18:02:23
6#
鸳鸯配2024 发表于 2024-8-22 17:52
我们是属于高频操作,不能用 sjs 格式文件去存储。

虽然不太理解既然可以导出为.ssjson文件,为何不能用.sjs文件存储呢,但是我们帮您在网上找到了相关方案:https://blog.csdn.net/qq_34735535/article/details/84066461
您可以尝试下链接中的方案。
通过问题描述,我们只知道您遇到了压缩问题,其实需要更多您的使用场景和实际需求相关信息,这样大家也好理解问题一起讨论解决方案。
回复 使用道具 举报
鸳鸯配2024
金牌服务用户   /  发表于:2024-8-22 18:06:08
7#
Wilson.Zhang 发表于 2024-8-22 18:02
虽然不太理解既然可以导出为.ssjson文件,为何不能用.sjs文件存储呢,但是我们帮您在网上找到了相关方案 ...

这个看过了。

用 pako.gzip(JSON.stringify(spread.toJSON()), {to: "string"}) 这个方法去存储的时候,直接卡死了。

我们的数据是很高频的操作,所以不能以文件的方法去存储,只能存在数据库里面。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-23 08:57:51
8#
鸳鸯配2024 发表于 2024-8-22 18:06
这个看过了。

用 pako.gzip(JSON.stringify(spread.toJSON()), {to: "string"}) 这个方法去存储的时候 ...

您需要将在SpreadJS中的内容导出为.ssjson文件并压缩后存储至数据库吗?为了便于促进咱们讨论解决方案,需要您提供多一些关于需求场景的完整描述信息。
回复 使用道具 举报
鸳鸯配2024
金牌服务用户   /  发表于:2024-8-23 09:17:38
9#
Wilson.Zhang 发表于 2024-8-23 08:57
您需要将在SpreadJS中的内容导出为.ssjson文件并压缩后存储至数据库吗?为了便于促进咱们讨论解决方案, ...

主要就是想把数据存到数据库里面。
因为我们操作会比较高频,只能通过数据库去操作数据会比较方便。

现在用的是 spread.toJSON()  方法
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-23 09:50:14
10#
鸳鸯配2024 发表于 2024-8-23 09:17
主要就是想把数据存到数据库里面。
因为我们操作会比较高频,只能通过数据库去操作数据会比较方便。

您指的数据是整个工作簿Workbook呢,还是在工作表Worksheet中填充的数据呢?
如果是工作簿Workbook,我理解在可以存储.ssjson文件数据的情况下,也可以存储.sjs,.sjs本就是压缩文件,其体积更小,何不考虑使用.sjs文件作为存储文件格式呢?
如果是填充在工作表Worksheet中的数据,在数据量庞大可能导致文件体积过大时,也可以采用模板文件加数据的结构,即用户每次打开模板文件同时获取数据填充进模板,呈现在用户眼前的依然是完整的文件。
您可以评估下您的需求场景是否适用。对于.ssjson文件的导出优化,除了在2楼向您提供的导出属性设置外,目前没有更好的支持方式。对于您提到的“操作会比较高频”,我们通过这些描述还不了解您的需求场景,需要您更详细地介绍下需求场景,这样也能促进咱们讨论问题。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部