找回密码
 立即注册

QQ登录

只需一步,快速开始

大明禅师

金牌服务用户

3

主题

10

帖子

41

积分

金牌服务用户

积分
41
最新发帖
大明禅师
金牌服务用户   /  发表于:2022-7-11 16:45  /   查看:2985  /  回复:5
5金币
本帖最后由 Clark.Pan 于 2022-7-11 16:56 编辑

我有一个excel文件,本机部署的spreadjs不能在线预览该文件,预览该文件,系统崩溃、
在spreadjs官方使用网站导入(https://demo.grapecity.com.cn/SpreadJS/WebDesigner/),网站崩溃

管道表.xlsx

1.04 MB, 下载次数: 430

最佳答案

查看完整内容

就是上面的代码,如果不想要数据验证,直接将所有的validations 节点在ssjson中删掉然后反序列化。这个过程可以放在Excel.open中进行处理。ExcelIO.open会将Excel文件转换成ssjson,原本在其success callback中我们需要将ssjson通过fromjson反序列化成页面内容。现在可以在formjson反序列化之前先将其中的validations节点删除掉,然后再反序列化即可。

5 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-11 16:45:04
来自 6#
就是上面的代码,如果不想要数据验证,直接将所有的validations 节点在ssjson中删掉然后反序列化。这个过程可以放在Excel.open中进行处理。ExcelIO.open会将Excel文件转换成ssjson,原本在其success callback中我们需要将ssjson通过fromjson反序列化成页面内容。现在可以在formjson反序列化之前先将其中的validations节点删除掉,然后再反序列化即可。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-11 16:56:16
2#
您好,问题已经重现,目前已经将问题提交给开发处理,问题编号SJS-13783
该帖子改为保留处理并移动至BUG反馈版块,有进一步的进展我会在这里向您反馈。
回复 使用道具 举报
大明禅师
金牌服务用户   /  发表于:2022-7-21 15:37:58
3#
Clark.Pan 发表于 2022-7-11 16:56
您好,问题已经重现,目前已经将问题提交给开发处理,问题编号SJS-13783
该帖子改为保留处理并移动至BUG反 ...

您好!这个问题现在开发解决了吗 ?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-21 15:59:29
4#
本帖最后由 Clark.Pan 于 2022-7-21 16:01 编辑

原因调查出来了,是因为表中包含了巨量的数据验证并且数据验证设置的范围也是巨量。您可以拿到ssjson后,用下面代码进行测试
  1. for (var sheetname in json.sheets) {
  2.     var sheet = json.sheets[sheetname];
  3.     if (sheet && sheet.validations && sheet.validations.length > 0) {
  4.         var validations = sheet.validations;
  5.         for (let index = 0; index < validations.length; index++) {
  6.             const element = validations[index];
  7.             console.log(element.ranges);
  8.         }
  9.     }
  10. }
复制代码

看一下输出的数据验证的设置就明白了
这样巨量的数据目前前端的内存根本无法支撑去读取。我们看了一下数据验证,没有发现这样的验证的意义在哪里,您可以从业务逻辑上看一下这样的数据验证是否有必要。如果没有必要建议人工去掉这些验证之后重新保存一下你的模板再导入使用。
回复 使用道具 举报
大明禅师
金牌服务用户   /  发表于:2022-7-25 09:27:14
5#
Clark.Pan 发表于 2022-7-21 15:59
原因调查出来了,是因为表中包含了巨量的数据验证并且数据验证设置的范围也是巨量。您可以拿到ssjson后,用 ...

如果原始文件不修改,能否前端代码控制不做验证,或者代码中断识别操作,不显示文件内容。我们可以允许用户不显示文件具体内容,但是不要把系统弄崩溃。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部