找回密码
 立即注册

QQ登录

只需一步,快速开始

jing-77

注册会员

5

主题

31

帖子

102

积分

注册会员

积分
102
最新发帖
jing-77
注册会员   /  发表于:2023-12-28 11:22  /   查看:5989  /  回复:39
本帖最后由 Richard.Huang 于 2024-1-3 14:04 编辑

产品:SpreadJS
版本:V15
问题编号:SJS-22128

image.png829360351.png
我们的业务场景是,会建好几个表格,之后存起来,然后可以快速复制出来一套,比如建好的有5个表格,复制出来之后修改成只用其中的2个表格,然后有的单元格就不能输入提示这个,对比了json数据是一样的;但是如果复制出来的5个表格不修改不动,仍是5个,就都能输入。

39 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-11 09:49:48
来自 40#
本贴问题及答案总结

1. 自定义数据验证丢失
   答:经过调研发现,楼主的自定义数据验证是一段自定义的代码逻辑,而我们SpreadJS在序列化工作簿时,是无法将用户自定义的代码序列化进我们的ssjson中的,因此就会造成这样的一个丢失现象。为了能够将自定义的内容也在导入导出后正常使用,我们通过自定义公式的方式绕过了无法序列化“自定义数据验证”的问题。具体实现附件所示

2. 使用unbindAll方法后,原本自定义的数据验证检验到失效数据不会弹窗提示了
   答:因为数据验证的弹窗提示也是设计器基于SpreadJS的事件开发得到的,unbindAll会将这部分内部事件也解绑,因此造成失效数据不提示的情况。因此为了避免该问题,您只能将您想要解绑的事件逐一解绑。

正则表达式数据验证的序列化和反序列化.rar

2.76 KB, 下载次数: 915

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-28 12:22:20
沙发
您好,从您的描述无法确定您具体问题所在,请问能否提供一份可供我们复现的demo,并描述描述一下如何操作,目前的现象是什么,您期望的样子是什么。方便我们进行详细测试,给您一个比较合理的方案
回复 使用道具 举报
jing-77
注册会员   /  发表于:2023-12-28 13:48:01
板凳
Richard.Huang 发表于 2023-12-28 12:22
您好,从您的描述无法确定您具体问题所在,请问能否提供一份可供我们复现的demo,并描述描述一下如何操作, ...

这个需要结合我们的系统才能实现完整的流程,json数据我已经对比了,一模一样,你们可以按照我说的场景自己模拟一个
回复 使用道具 举报
jing-77
注册会员   /  发表于:2023-12-28 13:53:19
地板
Richard.Huang 发表于 2023-12-28 12:22
您好,从您的描述无法确定您具体问题所在,请问能否提供一份可供我们复现的demo,并描述描述一下如何操作, ...

如果需要模板的json数据我可以提供的
回复 使用道具 举报
jing-77
注册会员   /  发表于:2023-12-28 14:06:10
5#
Richard.Huang 发表于 2023-12-28 12:22
您好,从您的描述无法确定您具体问题所在,请问能否提供一份可供我们复现的demo,并描述描述一下如何操作, ...

补充一点,就是不能输入的单元格选中后点击数据->数据验证,然后什么都不修改,只点个确定,就又能输入了 image.png297048033.png
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-28 14:26:05
6#
jing-77 发表于 2023-12-28 13:53
如果需要模板的json数据我可以提供的

能否将您的json提供给我们测试呢?还想再了解一下,您的这份json中保存的是一个sheet的信息还是说是整个workbook的信息?。如果是前者,我是不是需要通过sheet.fromJSON方法反序列化您的json就可以复现您的问题了。如果是后者,那么我导入您的json数据后,应该怎么操作来复制5个sheet呢
回复 使用道具 举报
jing-77
注册会员   /  发表于:2023-12-28 15:26:24
7#
Richard.Huang 发表于 2023-12-28 14:26
能否将您的json提供给我们测试呢?还想再了解一下,您的这份json中保存的是一个sheet的信息还是说是整个w ...

是整个workbook,我刚刚复制出来的一份模板数据里面这几个单元格是不能输入的,所以应该不用再去重现场景了,看看这个数据在你那儿能输入不,数据我已上传到付件,感谢
不能输入的是这几个 image.png723073119.png

sojson.zip

15.58 KB, 下载次数: 455

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-28 18:23:57
8#
jing-77 发表于 2023-12-28 15:26
是整个workbook,我刚刚复制出来的一份模板数据里面这几个单元格是不能输入的,所以应该不用再去重现场景 ...

您好,我在SpreadJSV16.2.6中复现了您的问题,并且通过详细调研您的JSON文件发现,您在几个有问题的单元格中设置了多个数据验证器,且都是自定义格式的验证器,且该验证器的条件等信息有丢失,我们猜测和这个有关,请问您的具体需求是什么,您需要给这两个单元格做什么样的设置呢
回复 使用道具 举报
jing-77
注册会员   /  发表于:2023-12-29 09:15:22
9#
本帖最后由 jing-77 于 2023-12-29 09:16 编辑
Richard.Huang 发表于 2023-12-28 18:23
您好,我在SpreadJSV16.2.6中复现了您的问题,并且通过详细调研您的JSON文件发现,您在几个有问题的单元 ...

感谢调研,其实那俩单元格就是要做成下拉选择的,也不需要其他的验证,我看代码里也没有设置那么多验证呢,我也不是很清楚怎么来的,所以你能猜测是怎么来的吗,或者有什么整改建议吗
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-29 09:46:00
10#
jing-77 发表于 2023-12-29 09:15
感谢调研,其实那俩单元格就是要做成下拉选择的,也不需要其他的验证,我看代码里也没有设置那么多验证呢 ...

我们猜测是您做了自定义的单元格数据验证,但是没有作相关的自定义的序列化方法,因此导致导出成ssjson后没有将相关信息序列化进导出文件。
对于您仅仅只是希望做一个下拉列表的需求,您可以参考这篇文章关于下拉列表的实现:https://gcdn.grapecity.com.cn/showtopic-169429-1-1.html
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部