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.
Devolver 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.
Devolver un rango de valores utilizando ICustomFunction
El siguiente código implementa ICustomFunction y devuelve el rango de valores a través de su método. Por favor, verifica el archivo excel de salida y el pdf generado con el código para tu referencia.
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-Java | |
import java.util.ArrayList; | |
import com.aspose.cells.AbstractCalculationEngine; | |
import com.aspose.cells.CalculationData; | |
import com.aspose.cells.DateTime; | |
public class CustomFunctionStaticValue extends AbstractCalculationEngine { | |
@Override | |
public void calculate(CalculationData calculationData) { | |
calculationData.setCalculatedValue(new Object[][] { new Object[] { new DateTime(2015, 6, 12, 10, 6, 30), 2 }, | |
new Object[] { 3.0, "Test" } }); | |
} | |
} |
Ahora usa la función anterior en tu programa.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(ReturningRangeOfValues.class); | |
Workbook wb = new Workbook(); | |
Cells cells = wb.getWorksheets().get(0).getCells(); | |
Cell cell = cells.get(0, 0); | |
cell.setArrayFormula("=MYFUNC()", 2, 2); | |
Style style = cell.getStyle(); | |
style.setNumber(14); | |
cell.setStyle(style); | |
CalculationOptions copt = new CalculationOptions(); | |
copt.setCustomFunction(new CustomFunctionStaticValue()); | |
wb.calculateFormula(copt); | |
// Save to xlsx by setting the calc mode to manual | |
wb.getSettings().getFormulaSettings().setCalculationMode(CalcModeType.MANUAL); | |
wb.save(dataDir + "output.xlsx"); | |
// Save to pdf | |
wb.save(dataDir + "output.pdf"); | |