找回密码
 立即注册

QQ登录

只需一步,快速开始

jing-77

最新发帖
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-2 16:19:59
21#
jing-77 发表于 2024-1-2 12:49
怎么说呢,在fromJSON填充的json数据里面已经有数据验证的内容,但是在加载表格的时候还会用setDataValid ...

我对您的问题进行分别回答
1. json中存在数据验证信息,那么我们就无需另外通过sheet.setDataValidator设置数据验证了,您所说的这种情况估计是json中的数据验证信息失效,建议提供一份可以让我们复现的ssjson文件测试一下
2. 您说的这个unbindAll方法是spread.unbindAll()吗,我测试了一下这个操作,确实会在设计器里出现输入无效值后不弹窗警告,但是依然会圈出无效数据。请问您也是这种问题吗
image.png989183959.png
回复 使用道具 举报
jing-77
注册会员   /  发表于:2024-1-2 16:29:02
22#
Richard.Huang 发表于 2024-1-2 16:19
我对您的问题进行分别回答
1. json中存在数据验证信息,那么我们就无需另外通过sheet.setDataValidator ...

问题1 ,就是可以拿前几次沟通的时候上传的一份json数据来测试一下,但是可能会因为那份json里面添加了多个数据校验会有问题,您那边可是删除一下多余,然后试一下;
问题2,我这儿是用了spread.unbindAll()这个方法后,输入无效值不会弹窗,但是没有圈出无效数据(不知道这块需要配置吗,还是什么原因);还有就是这个方法会影响其他设置的话,我分别解绑事件就能避免这个问题吗
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-2 18:08:39
23#
本帖最后由 Richard.Huang 于 2024-1-3 14:04 编辑
jing-77 发表于 2024-1-2 16:29
问题1 ,就是可以拿前几次沟通的时候上传的一份json数据来测试一下,但是可能会因为那份json里面添加了多 ...

第一个问题,我再试着用我们之前交流的ssjson文件进行测试一下,明天给您答复。
第二个问题,“没有圈出无效数据”我经过测试,发现也是在unbindAll之后出现的,对此我们需要进行详细调研,后续有相关调研进展我会第一时间在本贴中进行回复。问题编号:SJS-22128
回复 使用道具 举报
jing-77
注册会员   /  发表于:2024-1-2 18:13:57
24#
本帖最后由 jing-77 于 2024-1-2 18:15 编辑
Richard.Huang 发表于 2024-1-2 18:08
第一个问题,我再试着用我们之前交流的ssjson文件进行测试一下,明天给您答复。
第二个问题,“没有圈出 ...

好的,感谢多次的回复。
我刚发现第一个问题应该是因为json数据里面的校验信息不对,因为直接对单元格设置数据校验,只要设置对了就能提示,所以应该是json数据里的校验不对了,不用代码设置校验就不提示了。您有空也帮忙确认一下吧,看看是不是因为json数据里校验信息有问题呢
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-3 12:31:52
25#
jing-77 发表于 2024-1-2 18:13
好的,感谢多次的回复。
我刚发现第一个问题应该是因为json数据里面的校验信息不对,因为直接对单元格设 ...

好的,待我测试之后给您回复
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-3 14:27:26
26#
经过详细查看您之前在帖子中添加的json文件,我们发现该json文件最原始的信息是由WPS生成的,因为SpreadJS的设计是参考Microsoft Excel的设计标准,因此会存在和WPS不兼容的情况,故我猜测主要是因为WPS的文件导入到SpreadJS中丢失了这部分信息所致,因此为了方便进一步调研,能否将您最原始的WPS文档提供一下,看我们能否复现该问题
image.png203389586.png
回复 使用道具 举报
jing-77
注册会员   /  发表于:2024-1-3 14:55:22
27#
Richard.Huang 发表于 2024-1-3 14:27
经过详细查看您之前在帖子中添加的json文件,我们发现该json文件最原始的信息是由WPS生成的,因为SpreadJS ...

您看看能否复现呢

test.zip

16.99 KB, 下载次数: 590

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-3 18:38:35
28#
本帖最后由 Richard.Huang 于 2024-1-3 18:41 编辑
jing-77 发表于 2024-1-3 14:55
您看看能否复现呢

经过测试发现,并不是文件的问题,仍然是我们自定义数据验证的问题,对于自定义的公式(您的代码中自定义的公式为正则表达式),对于自定义公式的导出是无法序列化和反序列化的,因此出现了该问题。为了解决该问题,确实可以如您上述提及,切换或初始化完成后,再用代码设置一边数据验证。

或者,您可以参考这篇学习指南,将您的正则表达式封装成一个自定义函数,并且重写其序列化和反序列化方法
https://demo.grapecity.com.cn/sp ... erialization/purejs
image.png146257933.png
回复 使用道具 举报
jing-77
注册会员   /  发表于:2024-1-4 10:30:11
29#
Richard.Huang 发表于 2024-1-3 18:38
经过测试发现,并不是文件的问题,仍然是我们自定义数据验证的问题,对于自定义的公式(您的代码中自定义 ...

代码里是这么写的呢,是有不对的地方嘛,希望指导一下
image.png623976440.png image.png355237120.png
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-4 15:21:14
30#
jing-77 发表于 2024-1-4 10:30
代码里是这么写的呢,是有不对的地方嘛,希望指导一下

您的这个依然是自定义数据验证,首先我们需要知道的是,SpreadJS不支持序列化自定义数据验证。但是支持序列化自定义公式。因此基于目前的设计,我们可以通过自定义公式来实现咱们的数据验证的导入导出需求。附件是我按照该描述实现的一个demo,您可以通过点击按钮进行测试

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

2.76 KB, 下载次数: 583

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部