Bonjour,
J'essaye depuis 2 jours de générer un fichier excel en utilisant la librairie PHPExcel mais toujours j'ai le même problème, meme avec plusieurs helper .
J'ai essayé avec l'exemple fourni avec la librairie mais il m'affiche le meme message d'erreur.
image

Maintenant j'utilise un code similaire a ça ,mais maintenant je veut qu'il soit un fichier excel native pour que dans le future en peut generer des fichier plus complexe.
http://www.dnamique.com/cakephp-export-data-to-excel-the-easy-way/
Merci d'avance de vos réponses.

4 réponses


moucaaa
Auteur
Réponse acceptée

C'est bon maintenant j'ai trouvé l'erreur ,effectivement dans l'un de mes fichiers lié au controleur .
pour $this->layout='export_xls'; le code fonctionne très bien sans cette ligne.
merci.

Dans le source il met un layout qu'il n'utilise pas et apparemment c'est dans ce layout qu'il y a l’entête qui dit quel type est réellement ce fichier
donc je pense qu'au niveau de l'action de ton controller tu dois rajouter la ligne en gras

function export_xls() {
$this->Myview->recursive = 1;
$data = $this->Myview->find('all');

$this->set('rows',$data);
$this->layout='export_xls';
$this->render('export_xls','export_xls');

}

J'espère que ca résoudra ton problème :) bonne continuation

moucaaa
Auteur

Merci pour votre réponse ,
mais l'exemple ci dessus fonctionne très bien pour moi.
Pour le moment, j'ai tester PHPExcel dans un projet cakephp qui ne contient rien et ça fonctionne très bien mais dans mon application dont je travaille il m'affiche cette erreur Texte du lien

j'ai appliquer tous les cautions ici
• Make sure not to include any echo statements or output any other contents than the Excel file. There should be no whitespace before the opening <?php tag and at most one line break after the closing ?> tag (which can also be omitted to avoid problems).
• Make sure that your script is saved without a BOM (Byte-order mark). (Because this counts as echoing output)
• Same things apply to all included files
mais toujours le problème existe.

Euh?? J'te contredit pas :)
Bien que je penses toujours que la ligne d'affectation du layout soit en cause essai juste le code que je t'ai donné (t'as juste une ligne a copier et coller)... et dit moi que ca ne marche pas... que je puisse reposer en paix :)