<Serializable()>
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;
}
}
<Serializable()>
public class MultiFunc : FarPoint.CalcEngine.FunctionInfo
{
public override string Name { get { return "MULTI"; } }
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;
}
}
private void PageLoad(object sender, System.EventArgs e)
{
FarPoint.Web.Spread.Model.DefaultSheetDataModel dataModel = new FarPoint.Web.Spread.Model.DefaultSheetDataModel(5, 5);
System.Collections.IEnumerator se;
dataModel.AddCustomFunction(new CubeFunctionInfo());
dataModel.AddCustomFunction(new MultiFunc());
FpSpread1.ActiveSheetView.SetFormula(1, 1, "CUBE(4)");
FpSpread1.ActiveSheetView.SetFormula(2, 2, "MULTI(10)");
FpSpread1.ActiveSheetView.DataModel = dataModel;
se = dataModel.GetCustomFunctionEnumerator();
se.MoveNext();
Response.Write(se.Current.ToString());
}