Renvoyer une plage de valeurs à l'aide de ICustomFunction
LeICustomFunction est obsolète depuis la sortie de Aspose.Cells for Java 20.8. Veuillez utiliser leRésuméCalculMoteur classe. L’utilisation de laRésuméCalculMoteur classe est décrite dans l’article suivant.
Retour d’une plage de valeurs à l’aide de AbstractCalculationEngine.
Aspose.Cells fournitICustomFunctioninterface utilisée pour implémenter des fonctions définies par l’utilisateur ou personnalisées qui ne sont pas prises en charge par Microsoft Excel en tant que fonctions intégrées.
Surtout lorsque vous implémentez leICustomFunction méthode d’interface, vous devez renvoyer une seule valeur de cellule. Mais parfois, vous devez renvoyer une plage de valeurs. Cet article explique comment renvoyer la plage de valeurs deICustomFunction.
Le code suivant implémenteICustomFunctionet renvoie la plage de valeurs via sa méthode.
Créer une classe avec une fonctionCalculateCustomFunction. Cette classe implémenteICustomFunction.
// 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"} | |
}; | |
} | |
} |
Utilisez maintenant la fonction ci-dessus dans votre programme
// 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"); |