找回密码
 立即注册

QQ登录

只需一步,快速开始

xcyapcc

初级会员

23

主题

92

帖子

383

积分

初级会员

积分
383

微信认证勋章

xcyapcc
初级会员   /  发表于:2017-4-21 09:02  /   查看:5045  /  回复:9
1、通过程序设置单元格格式后,在模板中设置的数据验证不起作用,另外单元格格式设置的“数值”,保留2位小数也不起作用;   var style = new GC.Spread.Sheets.Style();
    style.backColor = 'lightGreen';
    style.locked = false;
   _sheet.setStyle(arr[0], arr[1], style, GC.Spread.Sheets.SheetArea.viewport);

2、数据验证无法验证是否是小数(例如录入5.67也提示有问题),最好能够有正则表达式就好了,程序如下:
  var dv = GC.Spread.Sheets.DataValidation.createNumberValidator(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.between, "5", "20", true);
    dv.inputTitle('请录入数字类型,例如:');
    dv.inputMessage('10.56');
    dv.ignoreBlank(true);
   _sheet.setDataValidator(arr[0], arr[1], dv);


9 个回复

倒序浏览
xcyapcc
初级会员   /  发表于:2017-4-21 10:00:20
沙发
数据校验用了模板设计,没有用代码写,然后读取样式做了一下判断
var style=_sheet.getStyle(arr[0], arr[1],GC.Spread.Sheets.SheetArea.viewport, true);
               if (_sheet.getStyle(arr[0], arr[1],GC.Spread.Sheets.SheetArea.viewport, true)){
                  style.backColor = 'lightGreen';
                  style.locked = false;
               }else{
                  
               }
               var style = new GC.Spread.Sheets.Style();

这样就可以了

另外还有一个问题就是数据提交的时候怎么去判断哪些数据验证不通过
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-21 10:31:37
板凳
数据验证也是在style里存的,所以如果重新设置就丢了
不能输入小数是因为您设置createNumberValidator 最后一个参数为true。最后一个参数是 isIntegerValue
dv = GC.Spread.Sheets.DataValidation.createNumberValidator(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.between, "5", "20", false);

http://sphelp.grapecity.com/webh ... umberValidator.html


提交时候需要循环所有单元格,用isvalid判断当前单元格是否验证通过。

http://sphelp.grapecity.com/webh ... ksheet~isValid.html
回复 使用道具 举报
xcyapcc
初级会员   /  发表于:2017-4-21 10:39:05
地板
好的,谢谢
回复 使用道具 举报
xcyapcc
初级会员   /  发表于:2017-4-21 10:40:31
5#
如何设置单元格保留2位小数呢
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-21 11:19:59
6#
不支持正则,可以用excel 的公式,用公式判断是否是数字并且有几位小数
回复 使用道具 举报
xcyapcc
初级会员   /  发表于:2017-4-21 11:27:46
7#
var style = new GC.Spread.Sheets.Style();
style样式里面如何设置保留2为小数
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-21 12:10:20
8#
style.formatter = '0.00'
回复 使用道具 举报
xcyapcc
初级会员   /  发表于:2017-4-21 12:59:38
9#
OK了,谢谢了
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-21 15:39:02
10#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部