找回密码
 立即注册

QQ登录

只需一步,快速开始

pblandscape

初级会员

19

主题

46

帖子

397

积分

初级会员

积分
397

微信认证勋章

pblandscape
初级会员   /  发表于:2017-7-3 14:31  /   查看:4006  /  回复:7
如果带公式了,可以不可以做数字校验,如图。

7 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-3 16:48:28
沙发
不好意思我没有理解您的需求,可否详细描述下
回复 使用道具 举报
pblandscape
初级会员   /  发表于:2017-7-6 15:13:50
板凳
已经电话和你们沟通,你看一下如何解决。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-6 17:51:13
地板
这个可以在ValueChanged事件里去做,
gcSpreadSheet1.ValueChanged += GcSpreadSheet1_ValueChanged;


        private void GcSpreadSheet1_ValueChanged(object sender, CellEventArgs e)
        {
            if (!string.IsNullOrEmpty(gcSpreadSheet1.ActiveSheet.Cells[e.Row, e.Column].Formula))
            {
                MessageBox.Show(e.Column.ToString());
            }
        }
回复 使用道具 举报
pblandscape
初级会员   /  发表于:2017-7-7 13:47:31
5#
        DataValidator NumberValidator = DataValidator.CreateNumberValidator(ComparisonOperator.Between, -999999999999, 999999999999, false);
if (col.ColumnType == ColumnType.Number)
                {
                    cell.DataValidator = NumberValidator;
                    if (string.IsNullOrEmpty(cell.Text))
                    {
                        cell.Value = 0.0;
                    }
                }
怎么让这个又校验公式,又校验数字
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-10 15:13:29
6#
DataValidator 会验证这个单元格最终的Value,如果是公式,那么也是会验证公式最终计算后的结果。所以即使输入的是公式也可以做公式结果的数字校验。


image.png911930847.png

image.png752892760.png

  1.             gcSpreadSheet1.HighlightInvalidData = true;

  2.             var valid1 = DataValidator.CreateNumberValidator(ComparisonOperator.Between, -999999999999, 999999999999, false);
  3.             gcSpreadSheet1.Sheets[0].Cells[1, 1].DataValidator = valid1;
  4.             gcSpreadSheet1.Sheets[0].Cells[1, 0].Text = "A number";
复制代码
回复 使用道具 举报
pblandscape
初级会员   /  发表于:2017-7-10 17:26:40
7#
用您的这个方法做不到弹出。
F}T4YBR)${GM5MV[G32$2AA.png
UX91%HBTPN995A1[J]VWA9N.png
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-11 11:41:27
8#
Message 需要您在事件中弹出来。
  1.             gcSpreadSheet1.HighlightInvalidData = true;
  2.             gcSpreadSheet1.ValidationError += GcSpreadSheet1_ValidationError;

  3.             var valid1 = DataValidator.CreateNumberValidator(ComparisonOperator.Between, -999999999999, 999999999999, false);
  4.             valid1.ErrorStyle = ErrorStyle.Stop;
  5.             valid1.ErrorMessage = "请输入数字";
  6.             gcSpreadSheet1.Sheets[0].Cells[1, 1].DataValidator = valid1;
  7.             gcSpreadSheet1.Sheets[0].Cells[1, 0].Text = "A number";




  8.         private void GcSpreadSheet1_ValidationError(object sender, GrapeCity.Windows.SpreadSheet.UI.ValidationErrorEventArgs e)
  9.         {
  10.             if (e.Validator.ErrorStyle == ErrorStyle.Stop)
  11.             {
  12.                 e.ValidationResult = DataValidationResult.Retry;
  13.                 MessageBox.Show(e.Validator.ErrorMessage);
  14.             }
  15.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部