Rückgabe eines Wertebereichs unter Verwendung des abstrakten Berechnungsmotors
Aspose.Cells bietet die Klasse AbstractCalculationEngine, die verwendet wird, um benutzerdefinierte Funktionen zu implementieren, die nicht von Microsoft Excel als integrierte Funktionen unterstützt werden.
In diesem Artikel wird erläutert, wie der Wertebereich von AbstractCalculationEngine zurückgegeben wird.
Der folgende Code zeigt die Verwendung der Methode AbstractCalculationEngine und gibt den Wertebereich über ihre Methode zurück.
Erstellen Sie eine Klasse mit einer Funktion CalculateCustomFunction. Diese Klasse erweitert 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" } }); | |
} | |
} |
Verwenden Sie die obige Funktion jetzt in Ihrem Programm.
// 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"); |