dkings 发表于 2015-9-10 11:35:00

Spread自定义函数

例:1.如何向Spread添加   KMJE(E4,R5,90,字符串)   这样的自定义函数
       2.当在单元格Formula属性上设置了非法公式后如何禁止控件单元格显示《#NAME?》错误
       3.禁止Spread自动计算
       4.在用户可输入的情况下(Protect = false;)怎么禁止用户编辑公式

iceman 发表于 2015-9-10 15:01:00

回复 1楼dkings的帖子

关于问题3 是否自动计算可以通过 gcSpreadSheet1.AutoRecalculation = false 来禁止。

其它两个问题正在调查中,稍后回复

iceman 发表于 2015-9-14 15:06:00

回复 2楼iceman的帖子

问题2,Spread 自定义公式方法如下:

      public partial class MainWindow : Window
    {
      public MainWindow()
      {
            InitializeComponent();
      }

      private void Window_Loaded(object sender, RoutedEventArgs e)
      {
            gcSpreadSheet1.ActiveSheet.AddCustomFunction(new AverageFunctionInfo());

            gcSpreadSheet1.ActiveSheet.Cells.Value = 1;
            gcSpreadSheet1.ActiveSheet.Cells.Value = 2;
            gcSpreadSheet1.ActiveSheet.Cells.Value = 3;
            gcSpreadSheet1.ActiveSheet.Cells.Value = 4;

            gcSpreadSheet1.ActiveSheet.SetFormula(0, 4, "MyAverage(A1,B1,C1,D1)");

      }
    }

   
    public class AverageFunctionInfo : CalcFunction
    {
      public override string Name { get { return "MyAverage"; } }
      public override int MinArgs { get { return 1; } }
      public override int MaxArgs { get { return 4; } }
      public override object Evaluate(object[] args)
      {
            int X = (int)(args);
            int X1 = (int)(args);
            int X2 = (int)(args);
            int X3 = (int)(args);

            return ((X1 - X / X) <= 20 && ((X2 - X) / X) <= 20 && ((X3 - X) / X) <= 20);
      }
    }

dkings 发表于 2015-9-21 09:33:00

回复 3楼iceman的帖子

3楼版主回答的是问题一吧,问题二怎么处理下啊

iceman 发表于 2015-9-21 18:13:00

回复 4楼dkings的帖子

抱歉让您久等了。

问题4在 Protect 属性设置成 false的情况下,无法禁止用户编辑公式。
问题2 我目前正在和产品组沟通实现方法,有进一步结果通知您。

iceman 发表于 2015-9-22 10:48:00

回复 1楼dkings的帖子

问题2,很抱歉,没有添加自定义接口,无法更改。

iceman 发表于 2015-10-20 09:17:00

回复 4楼dkings的帖子

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页: [1]
查看完整版本: Spread自定义函数