找回密码
 立即注册

QQ登录

只需一步,快速开始

汇新泓博
初级会员   /  发表于:2022-10-28 11:25  /   查看:1138  /  回复:8
1金币
给单元格添加公式数字验证,必填验证不生效 image.png774826965.png

最佳答案

查看完整内容

您好,经过电话沟通。不建议您通过数据验证方式 同时验证小数与非空: 原因是在excel中,0与空值相等,如下图所示。 所以如果您在excel中设置小数的数据验证,最小值是负数,最大值是正数,此时0介于两者中间,即是符合数据验证的值,即不能判断是否非空。 此外,您之前提到的正则表达式数据验证,是SpreadJS独有的功能,将其导出为xlsx文件,并用excel或者wps打开,将会发现 验证失败。 这里提供下验证小数的api, ...

8 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-28 11:25:29
来自 9#
本帖最后由 Ellia.Duan 于 2022-10-31 15:30 编辑

您好,经过电话沟通。不建议您通过数据验证方式 同时验证小数与非空:
原因是在excel中,0与空值相等,如下图所示。
image.png990392456.png
所以如果您在excel中设置小数的数据验证,最小值是负数,最大值是正数,此时0介于两者中间,即是符合数据验证的值,即不能判断是否非空。

image.png52569273.png

此外,您之前提到的正则表达式数据验证,是SpreadJS独有的功能,将其导出为xlsx文件,并用excel或者wps打开,将会发现 验证失败。

这里提供下验证小数的api, createnumbervalidato 其中有一个参数用来判断是否是整数。
image.png502794494.png
设置isIntegerValue 值为false,即可验证小数。
但是对于您这边的需求,验证四位小数,数据验证暂时无法实现您的需求,建议您这边 在用户提交数据时,对单元格遍历,然后找出不符合规则的数据,对用户进行提示。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-28 17:38:04
2#
您好,
代码中无法判断 ${Value}等具体是什么内容,请整理一个可直接复现的demo,
这边在代码基础上测试复现,从而进一步调研具体原因。
您可以参考附件的demo模板,将自己的代码添加在demo中,能复现此问题即可。

demo模板.html

3.57 KB, 下载次数: 29

回复 使用道具 举报
汇新泓博
初级会员   /  发表于:2022-10-28 18:35:00
3#
Lynn.Dou 发表于 2022-10-28 17:38
您好,
代码中无法判断 ${Value}等具体是什么内容,请整理一个可直接复现的demo,
这边在代码基础上测试 ...

image.png27855528.png 增加了非空验证  在界面上不显示

demo模板.html

3.68 KB, 下载次数: 27

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-28 18:58:57
4#
本帖最后由 Ellia.Duan 于 2022-10-28 19:00 编辑
汇新泓博 发表于 2022-10-28 18:35
增加了非空验证  在界面上不显示

在excel 单元格B1中设置公式‘=TRUNC(A1,2)=C1’ 然后A1不设置值,C1设置为0 ,然后B1的公式结果为true。
所以此时您这边设置ignoreBlank是无效的,因为要验证的单元格如果是空的,公式计算结果返回是true,就会验证成功。


image.png225716551.png

结果为true

image.png364089354.png

回复 使用道具 举报
汇新泓博
初级会员   /  发表于:2022-10-30 10:46:32
5#
Ellia.Duan 发表于 2022-10-28 18:58
在excel 单元格B1中设置公式‘=TRUNC(A1,2)=C1’ 然后A1不设置值,C1设置为0 ,然后B1的公式结果为true。 ...

那应该如何设置验证 既可以验证数字又可以验证非空。用正则 wps会报错
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-31 09:22:41
6#
本帖最后由 Ellia.Duan 于 2022-10-31 09:24 编辑

请问您的需求是数据验证要验证几位小数,同时要验证非空是吗?是可以用正则表达式的?您这边说的正则wps会报错是指您之前发过的这篇帖子吗?

https://gcdn.grapecity.com.cn/fo ... read&tid=156210

如果是的话,在这片帖子最后给出了不能判断0的解决方案,这里判断非空也同样可以在正则构造函数中进行处理。

或者您上传下您这边使用正则表达式的代码,这里具体分析一下。
回复 使用道具 举报
汇新泓博
初级会员   /  发表于:2022-10-31 11:57:36
7#
Ellia.Duan 发表于 2022-10-31 09:22
请问您的需求是数据验证要验证几位小数,同时要验证非空是吗?是可以用正则表达式的?您这边说的正则wps会 ...

添加正则的方法最终是解决了,但是在wps上会验证不通过。不知道具体是什么情况。导出的excel也发过。所以只能改变验证方式使用TRUNC验证小数。但是又出现无法同时验证非空。
需求验证x位小数可以输入0,适配wps。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-31 13:51:51
8#
关于在wps上验证不通过问题,您可以在相关帖子中进行追问。
需求验证x位小数可以输入0 ,又要验证非空。关于这个需求这边会调研下,有了结果会给您回复。

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