Partager via


Utilisation de la chaîne de calcul

Cette rubrique décrit la classe CalculationChain du Kit de développement logiciel (SDK) Open XML et sa relation avec le schéma SpreadsheetML au format de fichier Open XML. Pour plus d’informations sur la structure globale des composants et éléments qui composent un document SpreadsheetML, consultez Structure d’un document SpreadsheetML.

CalculationChain en SpreadsheetML

Les informations suivantes de la spécification ISO/IEC 29500 introduisent l’élément CalculationChain (<calcChain>).

Une instance de ce type de composant contient un jeu ordonné de références à toutes les cellules de toutes les feuilles de calcul du classeur dont la valeur est calculée à partir d'une formule. Ce classement permet aux formules de cellules liées entre elles d'être calculées dans l'ordre approprié lorsqu'une feuille de calcul est chargée pour être utilisée.

Un package ne doit pas contenir plus d'un seul composant Chaîne de calcul.

L'élément racine d'un composant ayant ce type de contenu doit être calcChain.

Le composant Chaîne de calcul spécifie l'ordre dans lequel les cellules du classeur ont été calculées pour la dernière fois. Il enregistre uniquement les informations relatives aux cellules qui contiennent des formules. Il ne contient aucune information sur l'arborescence de calcul des dépendances de formules. En d'autres termes, le composant Chaîne de calcul n'indique pas les dépendances des formules par rapport aux autres valeurs de cellule ; il indique uniquement l'ordre dans lequel les cellules ont été calculées pour la dernière fois.

Un événement de calcul particulier peut entraîner la réorganisation ou la modification de l'ordre de la chaîne de calcul. Par exemple, l'ajout de formules supplémentaires au classeur entraîne l'ajout de références dans le composant Chaîne de calcul.

Le calcul partiel est un autre exemple de mise à jour de l'ordre de calcul. Le calcul partiel est une forme d'optimisation qu'un tableur peut implémenter pour calculer uniquement les cellules qui dépendent d'autres cellules dont les valeurs ont changé, et pour ignorer d'autres formules dans le classeur. Cela permet d'éviter de recalculer inutilement des résultats déjà connus. Par conséquent, si un ensemble de formules ayant été ignoré lors d'un précédent calcul devient indispensable pour un nouveau calcul (en raison de la modification de la valeur d'une cellule), les formules correspondantes sont placées « en premier » dans la chaîne de calcul afin de pouvoir être évaluées.

Bien que les informations relatives à la chaîne de calcul puissent être chargées par un tableur, elles ne sont pas obligatoires. Une chaîne de calcul peut être construite en mémoire au moment du chargement, en fonction des formules et de leurs interdépendances, à condition que le tableur ait l'utilité de ces informations. L'ordre exprimé dans le composant Chaîne de calcul est fourni à titre indicatif ; en effet, pour l'application d'implémentation, il ne s'agit pas de l'ordre dans lequel les calculs doivent être effectués au moment de l'exécution.

© ISO/IEC29500: 2008.

Le tableau suivant répertorie les classes courantes du Kit de développement logiciel (SDK) Open XML utilisées lors de l’utilisation de la classe CalculationChain .

Élément SpreadsheetML Classe du Kit de développement logiciel (SDK) Open XML
c CalculationCell

Classe CalculationChain du Kit de développement logiciel (SDK) Open XML

La classeCalculationChain du Kit de développement logiciel (SDK) Open XML représente l’élément paragraph (<calcChain>) défini dans le schéma de format de fichier Open XML pour les documents SpreadsheetML. Utilisez la classe CalculationChain pour manipuler des éléments calcChain> individuels < dans un document SpreadsheetML.

Classe CalculationCell

La classe CalculationCell représente l’élément cell (<si>) qui représente une cellule qui contient une formule.

Les informations suivantes de la spécification ISO/IEC 29500 introduisent l’élément CalculationCell (<c>).

Chaque élément c représente une cellule contenant une formule. La première cellule calculée apparaît en premier (de haut en bas), et ainsi de suite. L'attribut de référence r indique l'adresse de la cellule dans la feuille. L'attribut d'index i indique l'index de la feuille à laquelle la cellule est associée.

© ISO/IEC29500: 2008.

SpreadsheetML

Les informations suivantes de la spécification ISO/IEC 29500 illustrent le code XML d'un exemple de chaîne de calcul, une fois que l'application a effectué son premier calcul complet.

<calcChain xmlns="…">
    <c r="B2" i="1"/>
    <c r="B3" s="1"/>
    <c r="B4" s="1"/>
    <c r="B5" s="1"/>
    <c r="B6" s="1"/>
    <c r="B7" s="1"/>
    <c r="B8" s="1"/>
    <c r="B9" s="1"/>
    <c r="B10" s="1"/>
    <c r="C10" s="1"/>
    <c r="D10" s="1"/>
    <c r="A2"/>
    <c r="A3" s="1"/>
    <c r="A4" s="1"/>
    <c r="A5" s="1"/>
    <c r="A6" s="1"/>
    <c r="A7" s="1"/>
    <c r="A8" s="1"/>
    <c r="A9" s="1"/>
    <c r="A10" s="1"/>
</calcChain>