public class CubeFunctionInfo : FarPoint.CalcEngine.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 = FarPoint.CalcEngine.CalcConvert.ToDouble(args[0]);
return num * num * num;
}
}
public class AddFunctionInfo : FarPoint.CalcEngine.FunctionInfo
{
public override string Name { get { return "ADD"; } }
public override int MinArgs { get { return 1; } }
public override int MaxArgs { get { return 1; } }
public override object Evaluate (object[] args)
{
float num = FarPoint.CalcEngine.CalcConvert.ToInt(args[0]);
return num + num;
}
}
FarPoint.Win.Spread.Model.DefaultSheetDataModel dataModel = new FarPoint.Win.Spread.Model.DefaultSheetDataModel(5, 5);
dataModel.AddCustomFunction(new CubeFunctionInfo());
dataModel.SetFormula(1, 1, "CUBE(4)");
dataModel.AddCustomFunction(new AddFunctionInfo());
dataModel.SetFormula(2, 2, "Add(10)");
fpSpread1.ActiveSheet.Models.Data = dataModel;
IEnumerator enm;
enm = dataModel.GetCustomFunctionEnumerator();
while (enm.MoveNext())
{
listBox1.Items.Add((string)enm.Current);
}