找回密码
 立即注册

QQ登录

只需一步,快速开始

bamning

注册会员

11

主题

23

帖子

84

积分

注册会员

积分
84
bamning
注册会员   /  发表于:2016-9-30 11:41  /   查看:3494  /  回复:5
我有一个数据表单的导入或填写模块1.日期范围验证
验证格式设置如下:
blob134052123.png
但是用字符串填充以后,居然验证不通过
blob969576110.png
2.公式验证
设置公式为:=OR(RC=-1,IF(ISNUMBER(VALUE(RC)),AND(VALUE(RC)<1000000,VALUE(RC)>0),IF(ISERROR(SEARCH(" ",RC)),NOT(ISERROR(SEARCH("L",RC))),FALSE)))
逻辑是:数据可以为-1,或0到1000000,或带“L”(110L),但是不能有空格。
但是目前主要问题是只要是非数字都通过了验证。
blob239976805.png
在Excel中验证:
带空格
blob453638915.png
非数字:
blob914649963.png

5 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-9-30 12:29:11
沙发
建议您将您的Excel上传,这样我们处理起来会快一些。您可以吧敏感信息删除。
回复 使用道具 举报
bamning
注册会员   /  发表于:2016-9-30 13:15:03
板凳
dexteryao 发表于 2016-9-30 12:29
建议您将您的Excel上传,这样我们处理起来会快一些。您可以吧敏感信息删除。

OK,只保留了有问题的部分。

export (1).xlsx

12.35 KB, 下载次数: 126

导出的Excel文件

回复 使用道具 举报
CCKan
银牌会员   /  发表于:2016-9-30 16:03:53
地板
你好!
1. 首先,SpreadJS 在导入日期类型的 validation 时有bug, 这个 bug 我们会在维护版本中修复,然后字符串请用 "2016/9/13 0:00:00", 否则 SpreadJS 无法正确解析为日期。
2. 请使用 =OR(RC=-1,IF(ISNUMBER(RC),AND(VALUE(RC)<1000000,VALUE(RC)>0),IF(ISERROR(SEARCH(" ",RC)),NOT(ISERROR(SEARCH("L",RC))),FALSE)))
   原因是 VALUE 函数会尝试将字符串转成数字,而各个浏览器的 parseFloat("110D") 都会返回一个数字而不是错误。
回复 使用道具 举报
bamning
注册会员   /  发表于:2016-9-30 17:32:36
5#
CCKan 发表于 2016-9-30 16:03
你好!
1. 首先,SpreadJS 在导入日期类型的 validation 时有bug, 这个 bug 我们会在维护版本中修复,然 ...

1.原来是BUG啊,那我目前也只能先应付先了
2.直接用parseFloat有点随意啊,这样就不能保持和Excel一致了

不过问题解决了就行,Thanks

评分

参与人数 1金币 +1000 收起 理由
dexteryao + 1000 发现bug,提供反馈

查看全部评分

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-9-30 17:34:13
6#
感谢您的反馈,发现bug,奖励1000积分。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部