Retourner une plage de valeurs en utilisant ICustomFunction
Le ICustomFunction est obsolète depuis la version Aspose.Cells for Java 20.8. Veuillez utiliser la classe AbstractCalculationEngine. L’utilisation de la classe AbstractCalculationEngine est décrite dans l’article suivant.
Retourner une plage de valeurs en utilisant AbstractCalculationEngine.
Aspose.Cells fournit l’interface ICustomFunction qui est utilisée pour implémenter des fonctions personnalisées ou personnalisées qui ne sont pas prises en charge par Microsoft Excel en tant que fonctions intégrées.
La plupart du temps, lorsque vous implémentez la méthode de l’interface ICustomFunction, vous devez renvoyer une seule valeur de cellule. Mais parfois, vous devez renvoyer une plage de valeurs. Cet article expliquera comment renvoyer la plage de valeurs depuis ICustomFunction.
Le code suivant implémente ICustomFunction et renvoie la plage de valeurs via sa méthode.
Créez une classe avec une fonction CalculateCustomFunction. Cette classe implémente 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"} | |
}; | |
} | |
} |
Maintenant utilisez 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"); |