彩票走势图

Aspose.Cells如何用ICustomFunction定义自定义函数

原创|其它|编辑:郝浩|2012-09-06 15:24:52.000|阅读 710 次

概述:ICustomFunction是一个非常实用的功能,它能够在模板文件中或通过代码定义自定义/用户定义的函数。接下来,我们就将使用Aspose.Cells创建和检验一个用户定义的函数:

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

ICustomFunction是一个非常实用的功能,它能够在模板文件中或通过代码定义自定义/用户定义的函数。接下来,我们就将使用Aspose.Cells创建和检验一个用户定义的函数:

  1. 创建项目:启动Visual Studio. NET并创建一个新的控制台应用程序。
  2. 添加引用:
    该项目将使用Aspose.Cells。所以,你必须到在项目中为Aspose.Cells组件添加引用。例如,添加一个引用到.... \Program Files\Aspose\Aspose.Cells for .NET\Bin\Net1.0\Aspose.Cells.dll
  3. 编写代码,创建和检验一个用户定义的函数:

[C#]

using System;
using System.Collections.Generic;
using System.Text;
using Aspose.Cells;

namespace UsingICustomFunction
{
    public class CustomFunction :   ICustomFunction
    {

        public object CalculateCustomFunction(string functionName, System.Collections.ArrayList paramsList, System.Collections.ArrayList contextObjects)
        {

            //get value of first parameter
            decimal firstParamB1 = System.Convert.ToDecimal(paramsList[0]);

            //get value of second parameter
            Array secondParamC1C5 = (Array)(paramsList[1]);

            decimal total = 0M;

            // get every item value of second parameter
            foreach (object[] value in secondParamC1C5)
        ;    {

                total += System.Convert.ToDecimal(value[0]);

            }

            total = total / firstParamB1;

            //return result of the function
            return total;

        }
    }

   class Program
    {
        static void Main(string[] args)
        {

        //Open the workbook
        Workbook workbook = new Workbook();

        //Obtaining the reference of the first worksheet
        Worksheet worksheet = workbook.Worksheets[0];

        //Adding a sample value to "A1" cell
        worksheet.Cells["B1"].PutValue(5);

        //Adding a sample value to "A2" cell
        worksheet.Cells["C1"].PutValue(100);

        //Adding a sample value to "A3" cell
        worksheet.Cells["C2"].PutValue(150);

        //Adding a sample value to "B1" cell
        worksheet.Cells["C3"].PutValue(60);

        //Adding a sample value to "B2" cell
        worksheet.Cells["C4"].PutValue(32);

        //Adding a sample value to "B2" cell
        worksheet.Cells["C5"].PutValue(62);

        //Adding custom formula to Cell A1
        workbook.Worksheets[0].Cells["A1"].Formula = "=MyFunc(B1,C1:C5)";

        //Calcualting Formulas
        workbook.CalculateFormula(false, new CustomFunction());

        //Assign resultant value to Cell A1
        workbook.Worksheets[0].Cells["A1"].PutValue(workbook.Worksheets[0].Cells["A1"].Value);

        //Save the file
        workbook.Save("C:\\UsingICustomFunction.xls");
        }
    }
}
 


[VB]

 Imports Aspose.Cells

Module Module1

    Sub Main()

        'Open the workbook
        Dim workbook As New Workbook

        'Obtaining the reference of the first worksheet
        Dim worksheet As Worksheet = workbook.Worksheets(0)

        'Adding a sample value to "A1" cell
    ;    worksheet.Cells("B1").PutValue(5)

        'Adding a sample value to "A2" cell
    ;    worksheet.Cells("C1").PutValue(100)

        'Adding a sample value to "A3" cell
        worksheet.Cells("C2").PutValue(150)

        'Adding a sample value to "B1" cell
        worksheet.Cells(";C3").PutValue(60)

        'Adding a sample value to "B2" cell
        worksheet.Cells("C4").PutValue(32)

        'Adding a sample value to "B2" cell
        worksheet.Cells("C5").PutValue(62)

        'Adding custom formula to Cell A1
         workbook.Worksheets(0).Cells("A1").Formula =

"=MyFunc(B1,C1:C5)"

        'Calcualting Formulas
  ;      workbook.CalculateFormula(False, New

CustomFunction)

        'Assign resultant value to Cell A1
        workbook.Worksheets(0).Cells("A1").PutValue

(workbook.Worksheets(0).Cells("A1").Value)

        'Save the file
        workbook.Save("C:\\UsingICustomFunction.xls")
    End Sub

End Module

Public Class CustomFunction
    Implements ICustomFunction

    Function CalculateCustomFunction(ByVal functionName As

String, _
        ByVal paramsList As System.Collections.ArrayList, _
        ByVal contextObjects As

System.Collections.ArrayList) As Object _
   ;     Implements ICustomFunction.CalculateCustomFunction

        'get value of first parameter
        Dim firstParamB1 As Decimal = CType

(paramsList.Item(0), Decimal)

        'get value of second parameter
    ;    Dim secondParamC1C5 As Array = CType

(paramsList.Item(1), Array)

      ;  Dim total As Decimal = 0

        ' get & add every item value of second parameter
        For Each value As Object In secondParamC1C5

            total += CType(value(0), Decimal)

        Next

        total = total / firstParamB1

        'return result of the function
        Return total

    End Function
End Class

代码运行后的效果图如下:

Aspose.Cells如何用ICustomFunction定义自定义函数


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP