Bonjour,
Commenter créer et remplir un fichier .xls ou .cvs à base des données provenant d'une requete SELECT. Tout récemment il y'avait un sujet du genre mais je n'arrive pas à le retrouver.
Merci d'avance...
Bonjour,
Commenter créer et remplir un fichier .xls ou .cvs à base des données provenant d'une requete SELECT. Tout récemment il y'avait un sujet du genre mais je n'arrive pas à le retrouver.
Merci d'avance...
Utilise fputcsv. Tu lis tes données via un bête SELECT, tu les places dans un array et tu boucles sur l'array pour écrire les données via fputcsv
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.
Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]
Oui, merci.
file.cvs est créé avec des données. Mais toutes les données de chaque array fait l'objet d'une cellule.
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 <?php $list = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"') ); $fp = fopen('file.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp); ?>
Pourtant je souhaite la première cellule me fasse 4 plutôt.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 aaa,bbb,ccc,dddd // dans la meme cellule 123,456,789 // dans la meme cellule "aaa","""bbb""" // dans la meme cellule
Merci pour votre aide.
Bonjour,
Excel sépare automatiquement les données d'un fichier .csv dans des colonnes distinctes quand ce dernier est bien formaté. Le séparateur automatiquement reconnu par excel est ; et non ,
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 <?php $list = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"') ); $fp = fopen('file.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, implode(';', $fields)); } fclose($fp); ?>
Bonjour,
Personnellement mon application exporte les données au format HTML (sans balise <html>, <head>, <body>) en nommant le fichier d'une extension XLS. Excel (en tout cas la version 2010 qui est installée) interprète parfaitement tout ce qui est dans une table comme une grille de données. D'ailleurs il est même possible d'y mettre du style.
Petit exemple :
Extrêmement pratique.
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 <style type="text/css"> <!-- body { background-color: #ECE9D8; } .titel { font-weight: bold; font-size: 22px; } .header { font-size: 13px; font-weight: bold; color: #CCCCCC; background-color: #A80329; } .contentData { font-size: 12px; } br {mso-data-placement:same-cell;} .green { background-color: #009900; } .red { background-color: #FF0000; } .yellow { background-color: #FFCC00; } a { text-decoration: none; } --> </style> <table cellpadding="0" cellspacing="0" border="1" bordercolor="#999999"> <tr> <td colspan="31" class="titel"><span style="color: #A80329; font-size: 26px;">Report</td> </tr> ...... <!-- ici vienne de nombreuses autres lignes avec de nombreuses cellules, 31 pour être précis sur le nombre --> </table>
Je n'ai pas testé d'ouvrir ça sur OpenOffice ou LibreOffice. Dans un milieu d'entreprise où les configuration des ordinateurs sont toutes les mêmes, c'est vraiment facile à gérer.
Cordialement,
Patrick
int fputcsv ( resource $handle , array $fields [, string $delimiter = ',' [, string $enclosure = '"' ]] )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $list = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"') ); $fp = fopen('file3.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields, ';'); } fclose($fp);
Partager