找回密码
 立即注册

QQ登录

只需一步,快速开始

bamning

注册会员

11

主题

23

帖子

84

积分

注册会员

积分
84
bamning
注册会员   /  发表于:2016-4-26 16:23  /   查看:3020  /  回复:5
字符串的列表的验证没有问题,但是当通过sheet.setValue设置单元格的值的时候,List列表验证不能正确的识别内容。
这个如何解决?
11.png

5 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-4-26 16:51:41
沙发
sheet.setValue(0,0,450000);
您需要set一个 int值
回复 使用道具 举报
bamning
注册会员   /  发表于:2016-4-26 17:54:43
板凳
dexteryao 发表于 2016-4-26 16:51
sheet.setValue(0,0,450000);
您需要set一个 int值

那么这就是很麻烦的一件事了,在Excel里面450000  '450000'其实是等同的,所以在里面设置验证规则就是正确的。
在js中这两个值也是相等的,不同你们这边是用了什么比较的方式?
假设我要设置的值是 '0001' ,验证的列表是 0001,0002,怎么办?我实验了是通不过的
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-4-27 09:42:53
地板
首先 在Excel里面当我们输入450000的时候excel会自动将值转换成可能的类型,450000在excel中并不是string。您在spread单元格中输入450000我们也会自动转换为int。
其次,setValue方法是这是数据的真实值,保存数据类型的。所以这里setvalue的时候你是要确定您需要的数据类型的。
所以那你设置一个string“450000”验证是不能通过的。
我们可以对用户输入的内容做处理,转换为可能的类型,但是对于代码,不会去做处理。
回复 使用道具 举报
bamning
注册会员   /  发表于:2016-4-28 14:57:46
5#
dexteryao 发表于 2016-4-27 09:42
首先 在Excel里面当我们输入450000的时候excel会自动将值转换成可能的类型,450000在excel中并不是string。 ...

我的意思是这个:
假设我要设置的值是 '0001' ,验证的列表是 0001,0002,怎么办?我实验了是通不过的

验证列表里面要怎么设置那个列表内容
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-4-28 15:04:45
6#
这个实现不了。
在spread和Excel中设置验证列表 0001,0002,实际设置后是1 和2 不能设置成0001,和0002
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部