export SQL vers Excel en PHP : je perds les zéros

Petit nouveau ! | 5 Messages

24 mai 2010, 18:53

Bonjour,

Voici un truc que je n'arrive pas à résoudre : j'ai tout un tableau HTML stocké dans UN champ texte d'une base SQL.
Je veux l'exporter sous Excel, donc j'ai un truc du type :
	
$sql = "SELECT leTableau FROM tableSQL";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_array($req);
$tableau = $data[leTableau];

header("Content-Type: application/vnd.ms-excel");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-disposition: filename=toto.xls");

$affiche=addslashes($tableau);
			
echo "$affiche\r\n";
Jusque là, tout fonctionne.

Sauf que j'ai, dans le tableau HTML stocké en SQL, des champs qui commencent par un zéro (des références). Et lors de l'export, Excel interprète ces références comme des entiers, et du coup me vire les zéros qui commencent la référence... et ma référence exportée devient donc fausse.

Avez-vous une idée pour garder les zéros qui commencent ces références dans le fichier Excel ?

Merci !

Philippe

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 mai 2010, 19:45

Bonjour,

Sous Excel, l'astuce consiste à mettre au début de la valeur un apostrophe.
Exemples :
0123456789 va devenir 123456789
'0123456789 va devenir 0123456789
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

24 mai 2010, 19:53

ok merci, j'essaye ça... il faut donc que je repère les zéros qui commencent une cellule de mon tableau pour y injecter une apostrophe (le tableau entier est stocké dans un champ de la table SQL)

Petit nouveau ! | 5 Messages

25 mai 2010, 11:20

Euh... Merci @rthur, mais du coup je me retrouve avec des :
'01234
comme référence dans mon fichier Excel (l'apostrophe apparait).
Y a-t-il un moyen de supprimer cet apostrophe, ou une autre technique ?

Merci d'avance.

Philippe