• <menu id="w2i4a"></menu>
  • logo Spread Studio for .NET使用教程
    文檔首頁>>Spread Studio for .NET使用教程>>Spread Studio for .NET使用教程:創(chuàng)建自定義函數(shù)

    Spread Studio for .NET使用教程:創(chuàng)建自定義函數(shù)


    如果需要定期使用一個非內置函數(shù)或者是將多個內置函數(shù)合并成一個獨立的函數(shù),那么你可以定義自己的自定義函數(shù)。這些自定義函數(shù)可以用來調用任意內置函數(shù)。

    一個自定義函數(shù)的名稱可以和內置函數(shù)相同。自定義函數(shù)優(yōu)先級別高于內置函數(shù)。自定義函數(shù)是動態(tài)鏈接的。因此,應用程序可以重新定義現(xiàn)有的自定義函數(shù)。

    》》》免費下載Spread.Net

    使用代碼:

    1、 定義自定義函數(shù)。

    2、 在表格中注冊函數(shù)。

    3、 使用自定義函數(shù)。

    示例:創(chuàng)建、注冊、使用三個自定義函數(shù)

    第一步是創(chuàng)建一個自定義函數(shù)。在這個例子中,我們創(chuàng)建三個自定義函數(shù):一個立方體的數(shù)學函數(shù),一個XOR邏輯函數(shù),和一個空字符串函數(shù)。下面是具體的實現(xiàn)代碼。

    CUBE定制函數(shù)是用來計算數(shù)字的三次方。即,CUBE(x)相當于POWER(x,3)。

    C#   

    public class CubeFunctionInfo : FunctionInfo
    {
    public override string Name { get { return "CUBE"; } } 
    public override int MinArgs { get { return 1; } }
    public override int MaxArgs { get { return 1; } }
    public override object Evaluate (object[] args)
    {
    double num = CalcConvert.ToDouble(args[0]);
    return num * num * num;
    }
    }
    

    XOR自定義函數(shù)執(zhí)行兩個布爾值的專用OR運行。這是類似于C語言的 "^"操作或者是VB中的XOR操作。

    C#

    public class XorFunctionInfo : FunctionInfo
    {
    public override string Name { get { return "XOR"; } }
    public override int MinArgs { get { return 2; } }
    public override int MaxArgs { get { return 2; } }
    public override object Evaluate (object[] args)
    {
    bool arg0 = CalcConvert.ToBool(args[0]);
    bool arg1 = CalcConvert.ToBool(args[1]);
    return (arg0 || arg1) && (arg0 != arg1);
    }
    }
    

    NULL函數(shù)返回恒量值NULL。(類似于FALSE()函數(shù)返回恒量值false)。

    C#

    public class NullFunctionInfo : FunctionInfo
    {
    public override string Name { get { return "NULL"; } } 
    public override int MinArgs { get { return 0; } }
    public override int MaxArgs { get { return 0; } }
    public override object Evaluate (object[] args)
    {
    return null;
    }
    }
    

    第二步是使用下面的代碼片段注冊自定義函數(shù)。

    C#

    FpSpread1.ActiveSheetView.AddCustomFunction(new CubeFunctionInfo());
    FpSpread1.ActiveSheetView.AddCustomFunction(new XorFunctionInfo());
    FpSpread1.ActiveSheetView.AddCustomFunction(new NullFunctionInfo());

    第三步是在公式中使用自定義函數(shù),如下面的代碼所示。

    C#

    FpSpread1.ActiveSheetView.SetFormula(0, 0, "CUBE(5)");
    FpSpread1.ActiveSheetView.SetFormula(1, 0, "XOR(FALSE,FALSE)");
    FpSpread1.ActiveSheetView.SetFormula(1, 1, "XOR(TRUE,FALSE)");
    FpSpread1.ActiveSheetView.SetFormula(1, 2, "XOR(FALSE,TRUE)");
    FpSpread1.ActiveSheetView.SetFormula(1, 3, "XOR(TRUE,TRUE)");
    FpSpread1.ActiveSheetView.SetFormula(2, 0, "CHOOSE(1,100,NULL(),300)");
    FpSpread1.ActiveSheetView.SetFormula(2, 1, "CHOOSE(2,100,NULL(),300)");
    FpSpread1.ActiveSheetView.SetFormula(2, 2, "CHOOSE(3,100,NULL(),300)");
    
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();