Bonjour à tous,
J'ai un script PHP qui utilise la classe "class.writeexcel_workbook.inc.php" pour générer un fichier Excel sur un serveur.
En gros, j'ai un tableau de valeur (de C7 à CX22) et en pied de chaque colonne, je veux faire une somme
Ce script allait bien jusqu'au bout, mais le fichier généré refusait de s'ouvrir et indiquait une erreur:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for ($c = 2; $c <= $lastCol; $c++) { //if ($c!=39) { $nomCol = getColName($c); $worksheet->write($line, $c, "=SUM(".$nomCol."".($firstLine+1).":".$nomCol."".$line.")", $boldTextCenter); //} }
Le fichier qui s'ouvrait était vierge.
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error056400_01.xml</logFileName> <summary>Des erreurs ont été détectées dans le fichier «*C:\Users\DMorel\Desktop\universEtThemes_parRA_VP_2012091141.xls*»</summary> <additionalInfo> <info>Excel a récupéré vos formules et les valeurs des cellules, mais certaines données peuvent avoir été perdues.</info> </additionalInfo> </recoveryLog>
Après maints tests de débuggage, j'ai identifié que c'était le calcul de la colonne AN (39) qui faisait planter l'ouverture du fichier. Si je met la condition pour ôter la colonne 39, le fichier est valide.
Pour info, si j'inverse la condition (Somme que sur la colonne 39), le fichier redevient erroné ! C'est donc bien la fonction "=SOMME(AM7:AM22)" qui plante.
Est-ce un bug connu ?
Comment Faire une fonction somme() sans appeler les colonnes par leur nom, mais par leur index ? (j'ai essayé avec adresse(), mais n'ai pas réussi à le faire fonctionner).
Merci d'avance.
Partager