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 : 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	
?>
Est-ce que cela est "réparable" ?

Merci d'avance pour votre aide.

beegees