Réduire le temps de calcul de la méthode Cell.Calculate

Scénarios d’utilisation possibles

Normalement, nous recommandons aux utilisateurs d’appeler la méthode Workbook.CalculateFormula() une fois, puis d’obtenir les valeurs calculées des cellules individuelles. Mais parfois, les utilisateurs ne veulent pas calculer l’ensemble du classeur. Ils veulent juste calculer une seule cellule. Aspose.Cells fournit la propriété CalculationOptions.Recursive que vous pouvez définir sur false et qui réduira considérablement le temps de calcul d’une cellule individuelle. En effet, lorsque la propriété récursive est définie sur true, toutes les dépendances des cellules sont recalculées à chaque appel. Mais lorsque la propriété récursive est définie sur false, les cellules dépendantes ne sont calculées qu’une seule fois et ne sont pas recalculées lors des appels ultérieurs.

Diminuer le temps de calcul de la méthode Cell.Calculate()

Le code d’exemple suivant illustre l’utilisation de la propriété CalculationOptions.Recursive. Veuillez exécuter ce code avec le fichier Excel d’exemple fourni (5472288.xlsx) et vérifier sa sortie console. Vous constaterez que le fait de définir la propriété récursive sur false a considérablement réduit le temps de calcul. Veuillez également lire les commentaires pour une meilleure compréhension de cette propriété.

Sortie console

Il s’agit de la sortie console du code d’exemple ci-dessus lorsqu’il est exécuté avec le fichier Excel d’exemple fourni (5472288.xlsx) sur notre machine. Veuillez noter que votre sortie peut différer, mais le temps écoulé après avoir défini la propriété récursive sur false sera toujours inférieur à celui pour true.

 Recursive true: 51 seconds

Recursive false: 16 seconds