[]
        
首页
开发者学堂
文档
论坛
市场
生态机会
活动
立即试用
(Showing Draft Content)

Parameter

Class Parameter

java.lang.Object
com.grapecity.documents.excel.Parameter

public class Parameter extends Object
表示自定义函数的参数定义。

Parameter 描述一个函数参数的元数据,包括其名称、描述、value type、默认值,以及参数是否可以接受引用或自定义对象。定义 CustomFunction 或 AsyncCustomFunction 实例的参数时使用此类。


 class DiscountPriceFunction extends CustomFunction {
     DiscountPriceFunction(Parameter[] parameters) {
         super("DISCOUNT_PRICE", FunctionValueType.Number, parameters);
     }
 
     @Override
     public Object evaluate(Object[] arguments, ICalcContext context) {
         return (double) arguments[0] * (1 - (double) arguments[1]);
     }
 }
 
 Parameter priceParameter = new Parameter("price", "Original price.", FunctionValueType.Number, 0d);
 Parameter discountParameter = new Parameter("discount", "Discount rate.", FunctionValueType.Number, 0d);
 Workbook.AddCustomFunction(new DiscountPriceFunction(new Parameter[] {
     priceParameter,
     discountParameter
 }), true);
 worksheet.getRange("A1").setFormula("=DISCOUNT_PRICE(100,0.15)");
 Object discountedPrice = worksheet.getRange("A1").getValue();
 
  • Constructor Details

    • Parameter

      public Parameter(FunctionValueType valueType)
      初始化一个参数实例。

      此重载将 null 作为默认值传递给 Parameter(FunctionValueType,Object)。

      Parameters:
      valueType - 参数的值类型。
    • Parameter

      public Parameter(FunctionValueType valueType, boolean acceptReference)
      初始化一个参数实例。

      此重载创建不带名称、描述或默认值的参数,并将默认值以 null 传递。

      Parameters:
      valueType - 参数的值类型。
      acceptReference - 如果此参数可以接受引用,则为 true;否则为 false。
    • Parameter

      public Parameter(FunctionValueType valueType, Object defaultValue)
      初始化一个参数实例。

      此重载创建不带名称或描述的参数,并为指定的 FunctionValueType 存储指定的默认值。

      Parameters:
      valueType - 参数的值类型。
      defaultValue - 参数的默认值。
    • Parameter

      public Parameter(FunctionValueType valueType, Object defaultValue, boolean acceptReference)
      初始化一个参数实例。

      此重载创建不带名称或描述的参数,并为这两个值传递 null。

      Parameters:
      valueType - 参数的值类型。
      defaultValue - 参数的默认值。此值可以为 null。
      acceptReference - 如果此参数可以接受引用。
    • Parameter

      public Parameter(String name, String description, FunctionValueType valueType, Object defaultValue)
      初始化一个参数实例。

      使用指定的名称、描述、值类型和默认值创建参数定义。此重载会为 acceptReference 参数传递 false。

      Parameters:
      name - 参数的名称。此值可以为 null。
      description - 参数的描述。此值可以为 null。
      valueType - 参数的值类型。
      defaultValue - 参数的默认值。此值可以为 null。
    • Parameter

      public Parameter(String name, String description, FunctionValueType valueType, Object defaultValue, boolean acceptReference)
      初始化一个参数实例。

      使用指定的名称、描述、值类型和默认值创建参数定义。此重载会为 acceptCustomObjects 参数传递 false 给 Parameter(String,String,FunctionValueType,Object,boolean,boolean)。

      Parameters:
      name - 参数的名称。此值可以为 null。
      description - 参数的描述。此值可以为 null。
      valueType - 参数的值类型。
      defaultValue - 参数的默认值。此值可以为 null。
      acceptReference - 如果此参数可以接受引用,则为 true;否则为 false。
    • Parameter

      public Parameter(FunctionValueType valueType, boolean acceptReference, boolean acceptCustomObjects)
      初始化一个参数实例。

      此重载创建不带名称、描述或默认值的参数,并将这些值以 null 传递给 Parameter(String,String,FunctionValueType,Object,boolean,boolean)。

      将 acceptCustomObjects 设置为 true,可以在 valueType 为 FunctionValueType.Object 时允许自定义对象。

      Parameters:
      valueType - 参数的值类型。
      acceptReference - 如果此参数可以接受引用。
      acceptCustomObjects - 如果值类型是 FunctionValueType.Object,则接受自定义对象。
    • Parameter

      public Parameter(String name, String description, FunctionValueType valueType, Object defaultValue, boolean acceptReference, boolean acceptCustomObjects)
      使用名称、描述、值类型、默认值和输入规则初始化参数。

      定义自定义函数参数的元数据时使用此构造函数,包括参数是否接受引用,以及当值类型为 FunctionValueType.Object 时是否允许自定义对象。

      Parameters:
      name - 参数的名称。
      description - 参数的描述。
      valueType - 参数的值类型。
      defaultValue - 参数的默认值。
      acceptReference - 如果此参数可以接受引用,则为 true;否则为 false。
      acceptCustomObjects - 如果 valueType 为 FunctionValueType.Object 时此参数接受自定义对象,则为 true;否则为 false。
  • Method Details

    • getName

      public final String getName()
      获取参数的名称。

      此方法返回创建 Parameter 实例时指定的名称。定义 CustomFunction 或 AsyncCustomFunction 时,使用参数名称来标识实参。

      
       Parameter priceParameter = new Parameter("price", "Original price.", FunctionValueType.Number, 0d);
       Parameter discountParameter = new Parameter("discount", "Discount rate.", FunctionValueType.Number, 0d);
       CustomFunction function = new DiscountPriceFunction(new Parameter[] {
           priceParameter,
           discountParameter
       });
       Workbook.AddCustomFunction(function, true);
       String name = priceParameter.getName();
       
      Returns:
      参数的名称;如果未指定名称,则返回 null。
    • getDescription

      public final String getDescription()
      获取参数的描述。

      在定义 CustomFunction 或 AsyncCustomFunction 时,此描述提供关于参数用途的面向用户的信息。返回创建 Parameter 实例时指定的描述。

      
       Parameter priceParameter = new Parameter("price", "Original price.", FunctionValueType.Number, 0d);
       Parameter discountParameter = new Parameter("discount", "Discount rate.", FunctionValueType.Number, 0d);
       CustomFunction function = new DiscountPriceFunction(new Parameter[] {
           priceParameter,
           discountParameter
       });
       Workbook.AddCustomFunction(function, true);
       String description = discountParameter.getDescription();
       
      Returns:
      参数的描述;如果未指定描述,则返回 null。
    • getValueType

      public final FunctionValueType getValueType()
      获取参数的值类型。

      此方法返回定义参数可接受值类型的 FunctionValueType,例如数字、文本、布尔值、变体或对象。返回值是创建 Parameter 实例时指定的类型。

      
       Parameter amountParameter = new Parameter(FunctionValueType.Number, 0d);
       CustomFunction function = new AddTaxFunction(new Parameter[] {
           amountParameter,
           new Parameter(FunctionValueType.Number, 0.08d)
       });
       Workbook.AddCustomFunction(function, true);
       FunctionValueType valueType = amountParameter.getValueType();
       
      Returns:
      参数的值类型。
    • getDefaultValue

      public final Object getDefaultValue()
      获取参数的默认值。

      此方法返回创建 Parameter 实例时指定的默认值。返回对象的类型取决于参数的 FunctionValueType。

      
       Parameter taxRateParameter = new Parameter(FunctionValueType.Number, 0.08d);
       CustomFunction function = new AddTaxFunction(new Parameter[] {
           new Parameter(FunctionValueType.Number),
           taxRateParameter
       });
       Workbook.AddCustomFunction(function, true);
       worksheet.getRange("A1").setFormula("=ADD_TAX(100)");
       Object total = worksheet.getRange("A1").getValue();
       Object defaultValue = taxRateParameter.getDefaultValue();
       
      Returns:
      参数的默认值;如果未指定默认值,则返回 null。
    • getAcceptReference

      public final boolean getAcceptReference()
      获取参数是否接受引用值。

      使用此属性可以确定自定义函数参数是否可以接收单元格或区域引用,而不仅仅是被引用的值。

      
       Parameter rangeParameter = new Parameter(FunctionValueType.Object, true);
       CustomFunction function = new SumRangeFunction(new Parameter[] { rangeParameter });
       Workbook.AddCustomFunction(function, true);
       worksheet.getRange("A1:A3").setValue(new Object[][] {{1}, {2}, {3}});
       worksheet.getRange("B1").setFormula("=SUM_RANGE(A1:A3)");
       boolean acceptReference = rangeParameter.getAcceptReference();
       
      Returns:
      如果参数接受引用值,则返回 true;否则返回 false。