IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[PEAR][Spreadsheet] Problème avec l'utilisation de Spreadsheet_Excel_writer [Fait]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut [PEAR][Spreadsheet] Problème avec l'utilisation de Spreadsheet_Excel_writer
    Salut tout le monde, je n'arrive pas à truver un tutorial pour comment transmettre un SELECT d'une base de données a un fichier excel en utilisant la librairie Spreadsheet_Excel_writer de PEAR..
    QUelqu'un aurait-il une idée..??

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut
    J'ai déja visité la page officiel mais on 'explique pas comment faire avec une base de données..

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    peut-être parce que chaque structure de base est différente

    c'est à toi de faire la conversion...
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut
    Oki alors je dois me mettre au boulot!!!..
    Mais dis moi j'ai trouver un type de script qui revient souvent..
    un script qui utilise les headers..
    mais voici les erreurs que j'obtiens..je ne vois pas comment les corriger..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\questionnaire\database.php:9) in c:\program files\easyphp1-8\www\questionnaire\admini.php on line 28
    
    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\questionnaire\database.php:9) in c:\program files\easyphp1-8\www\questionnaire\admini.php on line 29
    
    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\questionnaire\database.php:9) in c:\program files\easyphp1-8\www\questionnaire\admini.php on line 30
    
    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\questionnaire\database.php:9) in c:\program files\easyphp1-8\www\questionnaire\admini.php on line 31

    voici le script :
    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
    <?php
     
    include('database.php');
     
    $select = "SELECT * FROM utilisateur";                
    $export = mysql_query($select);
    $fields = mysql_num_fields($export);
    //on recupere le nom de chaque colonne
    for ($i = 0; $i < $fields; $i++) {
        $header .= mysql_field_name($export, $i) . "\t";
    } 
    //extraction des données
    while($row = mysql_fetch_row($export)) {
        $line = '';
        foreach($row as $value) {                                            
            if ((!isset($value)) OR ($value == "")) {
                $value = "\t";
            } else {
                $value = str_replace('"', '""', $value);
                $value = '"' . $value . '"' . "\t";
            }
            $line .= $value;
        }
        $data .= trim($line)."\n";
    }
    $data = str_replace("\r","",$data);
     
    header("Content-type: application/x-msdownload");
    header("Content-Disposition: attachment; filename=extraction.xls");
    header("Pragma: no-cache");
    header("Expires: 0");
    print "$header\n$data";
    ?>

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Void un petit exemple de code si ça peut t'aider, cela fait en gros la copie d'une table ds un fichier excel

    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
    59
    60
    61
    62
    63
    64
    <?php
     
    	// mes parametre de connection a la bd
    	include "../admin/connection.php";
     
    	// je fait ma requete sur la BD
    	$req = "SELECT * FROM ma_table";;
    	$res = mysql_query($req);
     
    	// inclusion de la librairie (il faut que ds le path de php il y est le dossier PEAR (set_include_path(get_include_path() . ";C:\wamp\php\PEAR");)
     	require_once 'Spreadsheet/Excel/Writer.php';
     
    	// Création d'un manuel de travail
    	$workbook = new Spreadsheet_Excel_Writer();
     
    	// Envoi des en-têtes HTTP
    	$workbook->send("nom_du_fichier.xls");
     
    	// Création d'une feuille de travail
    	$worksheet =& $workbook->addWorksheet('nom_de_la_feuil');
     
    	// une mise en forme pour les titre
    	$format_title =& $workbook->addFormat();
    	$format_title->setBold();
    	$format_title->setColor('yellow');
    	$format_title->setPattern(1);
    	$format_title->setFgColor('blue');
    	$format_title->setAlign('center');
     
    	// une mise en forme pour le contenu
    	$format_data =& $workbook->addFormat();
    	$format_data->setAlign('center');
    	$format_data->setTextWrap();
    	$format_data->setHAlign('left');
    	$format_data->setVAlign('top');
     
    	// nombre de colonne ds la table
    	$nb = mysql_num_fields($res);
     
    	// pour chaque colonne je met le titre ds la première ligne du fichié
    	for($i=0;$i<$nb;$i++){
    		$worksheet->write(0, $i, mysql_field_name ( $res, $i),$format_title);
    		if(mysql_field_len ( $res, $i ) > 50 )
    			$worksheet->setColumn ($i, $i, 50);
    		else
    			$worksheet->setColumn ($i, $i, 20);
    	}
     
    	$u=1;
    	// tant qu'il y a des enregistrements
    	while($data = mysql_fetch_array($res)){
    		// de la première à la desnière colonne
    		for($i=0;$i<$nb;$i++){
    			// j'écrit mes données
    			$worksheet->write( $u, $i, $data[$i], $format_data);
    		}
    		$u++;
    	}
    	mysql_close();
     
    	// Envoi du fichier
    	$workbook->close();
     
    ?>

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Spy2net Voir le message
    Void un petit exemple de code si ça peut t'aider, cela fait en gros la copie d'une table ds un fichier excel

    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
    59
    60
    61
    62
    63
    64
    <?php
     
    	// mes parametre de connection a la bd
    	include "../admin/connection.php";
     
    	// je fait ma requete sur la BD
    	$req = "SELECT * FROM ma_table";;
    	$res = mysql_query($req);
     
    	// inclusion de la librairie (il faut que ds le path de php il y est le dossier PEAR (set_include_path(get_include_path() . ";C:\wamp\php\PEAR");)
     	require_once 'Spreadsheet/Excel/Writer.php';
     
    	// Création d'un manuel de travail
    	$workbook = new Spreadsheet_Excel_Writer();
     
    	// Envoi des en-têtes HTTP
    	$workbook->send("nom_du_fichier.xls");
     
    	// Création d'une feuille de travail
    	$worksheet =& $workbook->addWorksheet('nom_de_la_feuil');
     
    	// une mise en forme pour les titre
    	$format_title =& $workbook->addFormat();
    	$format_title->setBold();
    	$format_title->setColor('yellow');
    	$format_title->setPattern(1);
    	$format_title->setFgColor('blue');
    	$format_title->setAlign('center');
     
    	// une mise en forme pour le contenu
    	$format_data =& $workbook->addFormat();
    	$format_data->setAlign('center');
    	$format_data->setTextWrap();
    	$format_data->setHAlign('left');
    	$format_data->setVAlign('top');
     
    	// nombre de colonne ds la table
    	$nb = mysql_num_fields($res);
     
    	// pour chaque colonne je met le titre ds la première ligne du fichié
    	for($i=0;$i<$nb;$i++){
    		$worksheet->write(0, $i, mysql_field_name ( $res, $i),$format_title);
    		if(mysql_field_len ( $res, $i ) > 50 )
    			$worksheet->setColumn ($i, $i, 50);
    		else
    			$worksheet->setColumn ($i, $i, 20);
    	}
     
    	$u=1;
    	// tant qu'il y a des enregistrements
    	while($data = mysql_fetch_array($res)){
    		// de la première à la desnière colonne
    		for($i=0;$i<$nb;$i++){
    			// j'écrit mes données
    			$worksheet->write( $u, $i, $data[$i], $format_data);
    		}
    		$u++;
    	}
    	mysql_close();
     
    	// Envoi du fichier
    	$workbook->close();
     
    ?>
    Bonjour,

    Je me permets de remercier Spy2net pour le code de création de fichier excel...il fonctionne à merveille.

    @+ (un débutant en PHP).

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Salut,
    Voila mon code fonctionne bien, mais dés que je veut mettre en forme ça ne marche plus:
    message d'erreur:

    <b>Fatal error</b>: Call to undefined function: set_row() in <b>c:\program files\easyphp\www\....php</b> on line <b>105</b><br />

    Voila mon bout de 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
    set_time_limit(10);	
         require_once 'Spreadsheet/Excel/Writer.php';
         // CREATION FICHIER     
     
    	$workbook = new Spreadsheet_Excel_Writer();
    	$workbook->send('test.xls');
    	$worksheet = $workbook->addWorksheet('FDMexport');
            $worksheet->hidegridLines();
     
         //FORMAT ECRITURE 
            //format ligne
            $worksheet->set_row(1, 20);
            //format1
            $border1 =$workbook->addformat();  
            $border1->set_color("white");        
     
         //ECRITURE DE LA PAGE
     
            $worksheet->write(11 ,7 , "OT:");
            $worksheet->write(11 ,8 , "$ot", $border1);
            $worksheet->write(12 ,7 , "SR:");                        
     
     
     
     
    	$workbook->close();
    	$workbook->sendFile();

    Merci d'avance pour vos réponses

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Excusez moi, je viens de trouver mon erreur
    C'est:
    et non

    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec l'utilisation de LogMessage
    Par vanquish dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 17/11/2005, 10h18
  2. Problème avec l'utilisation d'un module
    Par goblin dans le forum Modules
    Réponses: 4
    Dernier message: 09/11/2005, 20h55
  3. Problème avec l'utilisation de librairies
    Par Aradesh dans le forum MFC
    Réponses: 3
    Dernier message: 01/08/2005, 15h00
  4. [debutant] problème avec type à utiliser
    Par mlequim dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 15/07/2005, 16h08
  5. Problème avec l'utilisation de la fonction clock
    Par Matgic95 dans le forum C++Builder
    Réponses: 13
    Dernier message: 09/05/2005, 19h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo