Bonjour à tous !
Je cherche à exporter des données d'une bd Mysql sous un format excel, mais je suis bloqué dans le traitement du résultat de la requête SQL qui doit être de type array. je n'ai pas de problème pour
utiliser la boucle while et afficher les resultas sur le navigateur, mais je peine à formater la sortie sur le classeur.
Je reçois le message d'erreur que le format de données n'est pas de type array.
Le framework utilisé est PHPexcel pour l'export en excel. je demande votre assistance.
Les détails du code sont :
J'ai mis en rouge la partie où j'ai des difficultés.
-la bd : site_db
-table :-code pour l'export en excel :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE localite( idlocalite INT UNSIGNED AUTO_INCREMENT, nom VARCHAR(200) NOT NULL, PRIMARY KEY(idlocalite) )ENGINE=InnoDB;
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
48
49
50
51
52
53
54
55
56
57
58 <?php include 'PHPExcel.php'; include'PHPExcel/Writer/Excel2007.php'; //creer le classeur excel où seront stockées les données en instanciant l'objet PHPExcel $workbook = new PHPExcel; //Activer la feuille sur laquelle nous allons travailler $sheet = $workbook->getActiveSheet(); //Intégration des données dans le classeur excel2007 dont la feuille d'index 0 est activée //intégrer le titre dans la cellule A1 $sheet->SetCellValue('A1', Liste des localites); //intégrer l'entete du tableau de données à intégrer $sheet->SetCellValue('A2', 'idlocalite'); $sheet->SetCellValue('B2', 'nom_localite'); //intégrer les données proprement dites à partir de A3 include("connexion_site_db.php"); $sql='SELECT idlocalite,UPPER(nom) As nom_localite FROM localite ORDER BY nom_localite DESC'; try { $req = $bdd->prepare($qsl); $req->execute(); $result=$req->setFetchMode(PDO::FETCH_NUM); while ($row = $req->fetch()) { $data=array(); $data=array($row[0],$row[1]); $sheet->fromArray(array($row[0],$row[1]), NULL, 'A3'); } } catch (PDOException $e) { print $e->getMessage(); } //Enfin pour créer le fichier, nous devons instancier un objet writer, spécifique au type de tableau que nous voulons générer $writer = new PHPExcel_Writer_Excel2007($workbook); //Nous donnons un nom à notre fichier excel et l'affichons sur le navigateur web header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition:inline;filename=Fichier.xlsx '); $writer->save('php://output'); ?>
Partager