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 :

[WriteExcel] Duplication d'objet


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Par défaut [WriteExcel] Duplication d'objet
    Bonjour,

    Je rencontre un problème avec l'usage de la bibliothèque WriteExcel en php5
    J'ai de nombreux type de format à définir pour mettre en page un document excel à générer. Pour gagner du temps, j'ai voulu définir un format de base et le "cloner". J'affecte alors des valeurs différentes au propriété de mes formats finaux. Le problème que je rencontre est lorsque j'applique mon format modifié à une cellule, ce sont les valeurs des propriétés de mon objet initial qui sont utilisées. Exemple :


    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
    <?php
    	require_once "class.writeexcel_workbook.inc.php";
    	require_once "class.writeexcel_worksheet.inc.php";
    	$fname = tempnam("/tmp", "test2.xls");
    	$workbook = &new writeexcel_workbook($fname);
    	$worksheet = $workbook->addworksheet();
     
    //je definit mon 1er format de cellule en violet :
     
     
    	$FormatViolet = $workbook->addformat();
    	$FormatViolet ->set_bold();
    	$FormatViolet ->set_pattern(0x1);
    	$FormatViolet ->set_border_color('black');
    	$FormatViolet ->set_top(2);
    	$FormatViolet ->set_bottom(2);
    	$FormatViolet ->set_right(2);
    	$FormatViolet ->set_left(2);
    	$FormatViolet ->set_align('center');
    	$FormatViolet ->set_align('vcenter');
    	$FormatViolet ->set_text_wrap();
    	$FormatViolet ->set_fg_color(31);
     
    // je duplique l'objet et je changer la couleur pour du rose
     
    	$FormatRose = clone $FormatViolet;
     	$FormatRose ->set_fg_color(29);
     
    // je crée un troisième objet qui est le même que celui dupliqué mais 
    // qui lui n'est pas cloné.
     
     	$FormatRose2 = $workbook->addformat();
    	$FormatRose2 ->set_bold();
    	$FormatRose2 ->set_pattern(0x1);
    	$FormatRose2 ->set_border_color('black');
    	$FormatRose2 ->set_top(2);
    	$FormatRose2 ->set_bottom(2);
    	$FormatRose2 ->set_right(2);
    	$FormatRose2 ->set_left(2);
    	$FormatRose2 ->set_align('center');
    	$FormatRose2 ->set_align('vcenter');
    	$FormatRose2 ->set_text_wrap();
    	$FormatRose2 ->set_fg_color(29);
     
    	$worksheet->set_column(0, 2, 50);
    	$worksheet->set_row(0, 30);
    // Début ecriture
     
     
    $worksheet->write(0,0,"Cellule 1 / Couleur : " .$FormatViolet->_fg_color,  $FormatViolet);
    $worksheet->write(0,1,"Cellule 2 / Couleur : " .$FormatRose ->_fg_color,  $FormatRose);
    $worksheet->write(0,2,"Cellule 3 / Couleur : " .$FormatRose2 ->_fg_color,  $FormatRose2);
     
    	$workbook->close();
    	header("Content-Type: application/x-msexcel; name=\"devis.xls\"");
    	header("Content-Disposition: inline; filename=\"devis.xls\"");
    	$fh=fopen($fname, "rb");
    	fpassthru($fh);
    	unlink($fname);
    ?>
    le resultat :
    J'ai une première cellule qui est violette et qui m'affiche le code couleur 31 soit "violet",
    Une seconde cellule qui est violette et qui m'affiche le code couleur 29 soit "rose",
    la troisième est bien rose avec le code couleur "rose".

    Quelqu'un sait il m'expliquer pourquoi ma seconde colonne ne tiens pas compte de la valeur de ma propriété "_fg_color" de mon objet FormatRose ? C'est juste par curiosité parce que quelque chose m'échappe...

    Merci à tous.
    Images attachées Images attachées  

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Par défaut
    Hello,

    aucune idée ?

    merci.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/04/2014, 10h01
  2. clone ou duplicate d'objet as3 (movie clip)
    Par roduce dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 30/08/2008, 09h58
  3. Duplication de record contenant des objets
    Par bleuerouge dans le forum Débuter
    Réponses: 1
    Dernier message: 03/06/2008, 18h45
  4. Constructeurs et méthodes d'objets : duplication du code ou non ?
    Par Hibou57 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 03/10/2007, 20h41
  5. Duplication objet
    Par John Fullspeed dans le forum Composants VCL
    Réponses: 7
    Dernier message: 11/09/2004, 23h00

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