[PHPSpreadSheet] accès à une cellule nommée depuis version 1.15.0

accès à une cellule nommée depuis version 1.15.0 [PHPSpreadSheet] - PHP - Programmation

Marsh Posté le 12-10-2020 à 15:53:00    

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!

Reply

Marsh Posté le 12-10-2020 à 15:53:00   

Reply

Marsh Posté le 13-10-2020 à 08:33:58    

Autant pour moi, j'ai bien écrit "$worksheet" dans mon code, j'ai eu la bonne idée de ne pas faire de copier/coller ici de ma ligne. ;)
Ce code fonctionnait très bien avant le passage en 1.15.0 donc en tant que tel, pas de souci "d'orthographe" je dirais.
 
Entre temps j'ai contourner le problème avec ceci:

Code :
  1. $spreadsheet->getNamedRange('stagiaire')->getRange();


Qui me retourne par exemple "Feuil1!$B$5".
Je fais un preg_replace pour ne garder que "B5" et ça roule, mais c'est quand même autrement plus chi... embêtant qu'un simple $worksheet->getCell('stagiaire');

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed