Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Bureautique
Bureautique Forum d'entraide sur la gestion dynamique de documents de bureautique (Word, Excel, OpenOffice...) avec PHP. Avant de poster -> Cours Excel, FAQ OpenXML, FAQ OpenDocument
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/05/2011, 19h20   #1
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 140
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 140
Points : 28
Points : 28
Envoyer un message via MSN à jules_diedhiou Envoyer un message via Yahoo à jules_diedhiou
Par défaut php et excell

Bonjour
J'aimerai savoir si c'est possible de personnalisé l'affichage d'un fichier excell exporté depuis une base de donnée via.Cet fichier contient le tarif d'appel vers tous les pays d'une base de donnée asterisk
L'affichage sur excell devra etre de la maniére suivante:

Destination cout Destination cout Destination cout
pays1 1 pays3 3 5 5
pay2 2 pays4 4 6 6

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
48
 
<?php
session_start();
// Inclusion des paramètres de connexion à votre base de données
 
 
 require_once('Connections/connex1.php');
  mysql_select_db($database_connex1,$connex1);
		$insertSQL11 = sprintf("select currency,amount from currency where currency = '".$_SESSION["currency"]."'");
	$query11 = mysql_query($insertSQL11,$connex1) or die(mysql_error()) ;
	$row11 = mysql_fetch_row($query11);
	if ($row11[0] =='Chinese Yuan CN'){
			$curr =$row11[1] ;
			$currency ='Yuan';
			$real_curr ='Chinese Yuan CN';
	}
			else{
			$curr =1 ;
			$currency ='US $';
			$real_curr ='US $';
			}
// Titre des colonnes de votre fichier .CSV ou .XLS
$fichier = "Destination; Calling rate(".$currency."); ";
$fichier .= "\n";
 
// Requête SQL
require_once('Connections/connex4.php');
  mysql_select_db($database_connex4,$connex4);
$sql = "select  destination,rateinitial,id,dialprefix  from cc_ratecard";
$req = mysql_query($sql,$connex4);
 
// Enregistrement des résultats ligne par ligne
while($row = mysql_fetch_object($req))
 
{
	$call_rate1 =round(($row->rateinitial*$curr),4) ;
		 $call_rate = number_format($call_rate1, 4, '.', '');
		   $buyrate1 =round(($row->buyrate*$curr),4) ;
		   $buyrate  = number_format($buyrate1, 4, '.', '');
   $fichier .= "".$row->dialprefix.";".$row->destination.";".$call_rate."\n";
}
 
// Déclaration du type de contenu
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=rates.csv"); // Remplacer .csv par .xls pour exporter en .XLS
print $fichier;
exit;
?>
jules_diedhiou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2011, 19h55   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ton script a l'air de le faire déjà, qu'est ce qui te manque ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2011, 20h24   #3
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 140
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 140
Points : 28
Points : 28
Envoyer un message via MSN à jules_diedhiou Envoyer un message via Yahoo à jules_diedhiou
Oui en ce moment il me laffiche dans ce format

Destination cout
pays1 1
pays2 2
pays3 3
pays3 4
.... ..

j'aimerai l'afficher au format portrait

Destination Cout Destination Cout
pays1 1 pays3 3
pays2 2 pays4 4

jusqu'a avoir 4 ou 5 colonnes sur une feuille.
je ne sais pas si je me suis bien explqué
merci
jules_diedhiou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2011, 23h42   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il faudrait que tu sois précis.
Tu veux seulement 2 lignes ? sinon, a quel moment a passe a 3 colonnes ?
etc.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 01h31   #5
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 140
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 140
Points : 28
Points : 28
Envoyer un message via MSN à jules_diedhiou Envoyer un message via Yahoo à jules_diedhiou
voila table contient presque 52000 enregistrements si je devais l'imprimer sous excell ca prendrai trop de pages ce que je voudras c'est minimiser le nombre de pages.Doncce que je voudrais c'est mettre la page en mode portrait et sur chaque on aura des colonnes de 2 cad

Destination cout--Destination Cout--Destination cout--Destination cout --ect.

Code :
1
2
3
4
5
6
7
8
 
Dest cout -- Dest Cout -- Dest Cout -- Dest Code -- Dest Cout -- Dest Cout
1     1       5     5      9     9     13    13     17    17     21     21
2     2       6     6     10    10    14    14     18    18     22     22
3     3       7     7     11    11    15    15     19    19     23     23
4     4       8     8     12    12    16    16     20    20     24     24
 
//la page suivante prendra la suite et ainsi de suite
jules_diedhiou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 08h50   #6
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
Bonjour,

Est-ce un simple compteur du nombre de colonnes à atteindre avant de passer à une nouvelle ligne ne serait pas suffisant ?
Quel que chose du genre :
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
$nbColMax = 5; # Nombre de colonnes à atteindre et après changer de ligne
$xlRow = '';
$i = 0; 
 
// Enregistrement des résultats ligne par ligne
while($row = mysql_fetch_object($req)) {
   $call_rate1  = round(($row->rateinitial * $curr), 4);
   $call_rate   = number_format($call_rate1, 4, '.', '');
   $buyrate1    = round(($row->buyrate*$curr), 4) ;
   $buyrate     = number_format($buyrate1, 4, '.', '');
   $txt         = $row->dialprefix . ';' . $row->destination . ';' . $call_rate;
 
   if (++$i == $nbColMax) {
      $fichier .= $xlRow . $txt . "\n";
      $xlRow = '';
      $i = 0;
   } else {
      $xlRow .= $txt . ';';
   }
}
 
# traitement de la fin du dataset
if ($i > 0) {
   $fichier .= $xlRow;
}
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h46.


 
 
 
 
Partenaires

Hébergement Web