Bonjour,

J'utilise PHPSpreadSheet depuis un moment sans problème.
J'avais l'habitude d'accéder à des cellules grâce à des noms que je leur mettais, par exemple "C5" devenait "stagiaire".
Ensuite: $workshet->getCell('stagiaire'); et hop.

La mise à jour passant de 1.41.1 à 1.15.0 vient de se faire et depuis plus rien de tout ça ne fonctionne et j'ai le message d'erreur "Fatal error: Uncaught Error: Call to a member function getCell() on null"
Il est bien question dans le changelog d'histoire de cellule relatives et absolues mais bon...

IMPORTANT NOTE: This Introduces a BC break in the handling of named ranges. Previously, a named range cell reference of B2 would be treated identically to a named range cell reference of $B2 or B$2 or $B$2 because the calculation engine treated then all as absolute references. These changes "fix" that, so the calculation engine now handles relative references in named ranges correctly. This change that resolves previously incorrect behaviour in the calculation may affect users who have dynamically defined named ranges using relative references when they should have used absolute references.

Je ne vois vraiment pas comment continuer à accéder à mes cellules nommées et j'en ai plutôt besoin, je demande donc votre aide...

Merci!

3 réponses


Flo.S
Réponse acceptée

Hello, il est dis dans le changelog :

"This change that resolves previously incorrect behaviour in the calculation may affect users who have dynamically defined named ranges using relative references when they should have used absolute references."

Un petit tour sur la doc s'impose : https://phpspreadsheet.readthedocs.io/en/latest/topics/defined-names/

Ce n'est pas mon rayon, mais je pense que cela pourrais t'être utile ;)

jouvrard
Auteur

J'étais allé voir là avant en effet.
Il propose de créer des zones nommées et de les rappeler ensuite, mais ne gère visiblement plus celles qui sont nommées directement dans le document d'origine.
J'ai pu trouvé une méthode pour y accéder tout de même, mais loin d'être aussi pratique qu'avant... En espérant qu'une prochaine version améliore ce point. :)

jouvrard
Auteur

Bonjour,

Juste pour info, dans le changelog de la version à venir nous avons ceci: "Fixed issue with Worksheet's getCell() method when trying to get a cell by defined name"
On peut donc se dire qu'à partir de la version 1.17.0 nous devrions pouvoir recommencer à faire ça.