将范围作为参数从Excel传递到C#Excel-dna

时间:2018-07-17 10:55:50

标签: c# excel-dna

enter image description here
我在excel中选择了一些行和列。 我如何将它们作为参数传递给C#excel-dna函数脚本,例如“ Sum(A1:C5)”?

2 个答案:

答案 0 :(得分:0)

[ExcelFunction(描述=“获取参数类型”)]
        公共静态字符串getCSType(object o){
            返回o.GetType()。ToString();
        }
我使用这种方法来获取excel参数的类型,并发现选择了单元格
 作为Object [,]传递。如果仅传递一个单元格,则它将作为字符串类型传递。

在c#excel-dna中,您可以使用一个对象来接收excel传递的任何类型的参数。

答案 1 :(得分:0)

这是一个示例代码,它可以处理作为单个单元格或数组传递的参数

public static object MyUDF(object param)
{
  if(param is Array){
    if (((Array)param).Rank == 2){
      int columnCount = ((Array)param).GetLength(1);
      int rowCount = ((Array)param).GetLength(0);
      for (int i = 0; i < rowCount; i++)
      {
        for (int j = 0; j < columnCount; j++)
        {
            string cellValue = ((Array)param).GetValue(i, j).ToString(); 
        }
      }
    }     
  }else{
    string cellValue=param.ToString();
  }    
  return "done";
}