Le fichier généré par PHP est illisible avec Excel 2003
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 :
Code:
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
?> |
Est-ce que cela est "réparable" ?
Merci d'avance pour votre aide.
beegees