Devolver un rango de valores utilizando AbstractCalculationEngine
Aspose.Cells proporciona una clase AbstractCalculationEngine que se utiliza para implementar funciones personalizadas que no son compatibles con Microsoft Excel como funciones integradas.
Este artículo explicará cómo devolver el rango de valores desde AbstractCalculationEngine.
El siguiente código demuestra el uso del AbstractCalculationEngine y devuelve el rango de valores a través de su método.
Crear una clase con una función CalculateCustomFunction. Esta clase extiende AbstractCalculationEngine.
// 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 | |
String outputDir = Utils.Get_OutputDirectory(); | |
Workbook workbook = new Workbook(); | |
Cells cells = workbook.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.setCustomEngine(new CustomFunctionStaticValue()); | |
workbook.calculateFormula(copt); | |
// Save to XLSX by setting the calc mode to manual | |
workbook.getSettings().getFormulaSettings().setCalculationMode(CalcModeType.MANUAL); | |
workbook.save(outputDir + "output.xlsx"); | |
// Save to PDF | |
workbook.save(outputDir + "output.pdf"); |