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 des abstrakten Berechnungsmotors.
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.
Der folgende Code implementiert ICustomFunction und gibt den Wertebereich über seine Methode zurück.
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-.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"} | |
}; | |
} | |
} |
Verwenden Sie die obige Funktion nun in Ihrem Programm.
// 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"); |