Bonjour tout le monde,
Je me suis inspirée d'un tuto trouvé sur develoopez.com pour envoyer des données vers excel avec PHP :
http://stephaneey.developpez.com/tutoriel/php/phpexcel/
je pensais que tout ce passais, j'ouvrais le document avec Excel 2007 mais quand j'ai ouvert le document avec Excel 2003, je me suis aperçu que j'obtenais ce message d'erreur :
Voir miniature messageErreur
Et voici le résultat obtenu dans le fichier xls :
Voir miniature nommée contenu
Voici mon code :
Est-ce que cela est "réparable" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 <?php session_start(); define("FILENAME","c:\phpexcel.xls"); //constante: nom du fichier à générer $conn=mysql_connect('localhost','root','mdp') or die('Probleme lors de la connexion a la BD MYSQL'); mysql_select_db('pharma',$conn) or die('Problème lors de la sélection de la BD MYSQL');//Sélection de la DB "phpexcel" $query="SELECT inscrits_en.ID, etudiants.MATRICULE_ET,etudiants.NOM_ET,etudiants.PRENOM_ET, inscrits_en.NOTE FROM `inscrits_en` LEFT JOIN `etudiants` ON ( inscrits_en.MATRICULE_ET = etudiants.MATRICULE_ET ) WHERE MNEMONIC = '" .$_SESSION["MNEMONIC"]. "' AND TYPE_DE_COURS = '" .$_SESSION["TYPE_DE_COURS"]. "' AND CATEGORIE = '" .$_SESSION['id_categories']."' ORDER BY NOM_ET, PRENOM_ET"; echo'<script LANGUAGE="JavaScript">alert("'.$query.'");</SCRIPT>'; $res=mysql_query($query) or die('Problème lors de la réception des enregistrements '.$query);//Exécution de la requête if(mysql_num_rows($res)>0) { //Si au moins une ligne est retournée if(file_exists(FILENAME)) { //Suppression du fichier précédement créé unlink(FILENAME); //Suppression du fichier } $excel=new COM("Excel.application"); //Instanciation de l'objet COM $excel->sheetsinnewworkbook=1;//1 seule feuille de calcul dans le document $excel->Workbooks->Add();//Ajout d'un classeur $book=$excel->Workbooks(1);//$book contient le classeur actif $sheet=$book->Worksheets(1);//$sheet contient la feuille active $sheet->Name="Listes des étudiants";//Attribution d'un nom à la feuille $i = 0; while($row=mysql_fetch_object($res)) {//Parcours du résultat de la requête $i++; $cell=$sheet->Range(A.$i); $cell->value=$row->ID;//Attribution d'une valeur à la cellule $cell=$sheet->Range(B.$i); $cell->value=$row->MATRICULE_ET; $cell=$sheet->Range(C.$i); $cell->value=$row->NOM_ET; $cell=$sheet->Range(D.$i); $cell->value=$row->PRENOM_ET; $cell=$sheet->Range(E.$i); $cell->value=$row->NOTE; } } $book->saveas(FILENAME);//Sauvegarde du fichier unset($sheet);//Libération de $sheet unset($book);//Libération de $book $excel->Workbooks->Close();//Fermeture du classeur $excel->Quit();//On quitte Excel unset($excel);//Libération de l'instance $excel ?>
Merci d'avance pour votre aide.
beegees
Partager