Rückgabe eines Wertebereichs unter Verwendung von ICustomFunction
Das ICustomFunction ist seit der Veröffentlichung von Aspose.Cells for Java 20.8 veraltet. Bitte verwenden Sie die Klasse AbstractCalculationEngine. Die Verwendung der Klasse AbstractCalculationEngine wird in folgendem Artikel beschrieben.
Rückgabe eines Wertebereichs unter Verwendung von AbstractCalculationEngine.
Aspose.Cells bietet die Schnittstelle ICustomFunction, die verwendet wird, um benutzerdefinierte Funktionen zu implementieren, die nicht von Microsoft Excel als integrierte Funktionen unterstützt werden.
Meistens, wenn Sie die Methode der Schnittstelle ICustomFunction implementieren, müssen Sie einen einzelnen Zellwert zurückgeben. Manchmal müssen jedoch Wertebereiche zurückgegeben werden. Dieser Artikel erläutert, wie der Wertebereich von ICustomFunction zurückgegeben wird.
Rückgabe eines Wertebereichs mit ICustomFunction
Der folgende Code implementiert ICustomFunction und gibt den Wertebereich über seine Methode zurück. Überprüfen Sie die erstellte Exceldatei und das pdf, die mit dem Code generiert wurden, als Referenz.
Erstellen Sie eine Klasse mit einer Funktion CalculateCustomFunction. Diese Klasse implementiert 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" } }); | |
} | |
} |
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 | |
// 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"); | |