Bonjour,
Je débute dans la génération de fichier excel à partir de php.
J'utilise pour cela les fonctions issues de "COM("Excel.application");".
Avec ce code, tout se passe bien :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| $nomfic = "D:/toto.xls";
define ("FILENAME", $nomfic);
if (file_exists(FILENAME)) {
unlink(FILENAME);
}
$excel = new COM("Excel.application");
$excel->sheetsinnewworkbook = 1;
$excel->Workbooks->Add();
$book = $excel->Workbooks(1);
$sheet = $book->Worksheets(1);
$sheet->Name = "Nom de votre feuille";
$cell = $sheet->Range("A1");
$cell->value = "toto";
$book->saveas(FILENAME);
unset($sheet);
unset($book);
$excel->Workbooks->Close();
$excel->Quit();
unset($excel); |
Par contre, quand je fais appel à une fonction, j'ai un message d'erreur :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| function inscrireligne ($ligne, $libelle) {
global $sheet;
$cell = $sheet->Range("A".$ligne);
$cell->value = "$libelle";
}
$nomfic = "D:/toto.xls";
define ("FILENAME", $nomfic);
if (file_exists(FILENAME)) {
unlink(FILENAME);
}
$excel = new COM("Excel.application");
$excel->sheetsinnewworkbook = 1;
$excel->Workbooks->Add();
$book = $excel->Workbooks(1);
$sheet = $book->Worksheets(1);
$sheet->Name = "Nom de votre feuille";
inscrireligne ("toto", 1);
$book->saveas(FILENAME);
unset($sheet);
unset($book);
$excel->Workbooks->Close();
$excel->Quit();
unset($excel); |
J'obtiens l'erreur suivante :
Fatal error: Cannot pass parameter 1 by reference in C:\Program Files\EasyPHP\www\fsup\synthesebudgglobal.php on line 46
(la ligne 46 est la ligne : $book->saveas(FILENAME)![;)](https://www.developpez.net/forums/images/smilies/icon_wink.gif)
Pourriez vous m'aider ?
Mon but est de faire des fonctions qui modifie les cellules de feuilles excel (je veux utiliser des fonctions pour faire des modifications répétitives).
Merci d'avance
Partager