Retorno de un rango de valores usando ICustomFunction
El ICustomFunction está obsoleto desde el lanzamiento de Aspose.Cells for Java 20.8. Por favor, utiliza la clase AbstractCalculationEngine. El uso de la clase AbstractCalculationEngine se describe en el siguiente artículo.
Retorno de un rango de valores usando AbstractCalculationEngine.
Aspose.Cells proporciona la interfaz ICustomFunction que se utiliza para implementar funciones personalizadas definidas por el usuario que no son compatibles con las funciones integradas de Microsoft Excel.
Mayormente, cuando se implementa el método de la interfaz ICustomFunction, es necesario devolver un valor de celda única. Pero a veces, es necesario devolver un rango de valores. Este artículo explicará cómo devolver el rango de valores desde ICustomFunction.
El siguiente código implementa ICustomFunction y devuelve el rango de valores a través de su método.
Crear una clase con una función CalculateCustomFunction. Esta clase implementa ICustomFunction.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
public class CustomFunctionStaticValue : ICustomFunction | |
{ | |
public object CalculateCustomFunction(string functionName, ArrayList paramsList, ArrayList contextObjects) | |
{ | |
return new object[][] { | |
new object[]{new DateTime(2015, 6, 12, 10, 6, 30), 2}, | |
new object[]{3.0, "Test"} | |
}; | |
} | |
} |
Ahora utiliza la función anterior en tu programa
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create workbook | |
Workbook wb = new Workbook(); | |
Cells cells = wb.Worksheets[0].Cells; | |
// Set formula | |
Cell cell = cells[0, 0]; | |
cell.SetArrayFormula("=MYFUNC()", 2, 2); | |
Style style = cell.GetStyle(); | |
style.Number = 14; | |
cell.SetStyle(style); | |
// Set calculation options for formula | |
CalculationOptions copt = new CalculationOptions(); | |
copt.CustomEngine = new CustomFunctionStaticValue(); | |
wb.CalculateFormula(copt); | |
// Save to xlsx by setting the calc mode to manual | |
wb.Settings.FormulaSettings.CalculationMode = CalcModeType.Manual; | |
wb.Save(dataDir + "output_out.xlsx"); | |
// Save to pdf | |
wb.Save(dataDir + "output_out.pdf"); |