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

Modules Perl Discussion :

Methode et Package


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 18
    Par défaut Methode et Package
    Je veux lire un fichier excel puis copier certaines donnees avec leur format :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $oWkC = $oWkS->{Cells}[$iR][$iC];
    $valeur = $oWkC->Value, if($oWkC);
    $format = $oWkC->Format, if ($oWkC);
    $SheetAlim->write($iR, $iC, $valeur, $format);
    et ca marche sans la 3eme ligne, mais je souhaite conserver le format du hier original.

    Et je ne comprend pas trop pourquoi j'ai le message ci-dessous dans mon error_log

    [Fri Jul 21 11:35:24 2006] [error] [client 127.0.0.1] [Fri Jul 21 11:35:24 2006] test.pl: Can't locate object method "Format" via package "Spreadsheet:arseExcel::Cell" at /opt/lampp/htdocs/xampp/test.pl line 250., referer: http://localhost/xampp/test.pl

    alors que format.pm est present dans /opt/lampp/lib/perl5/site_perl/Spreadsheet/ParseExcel/

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Déjà tu fais une erreur de syntaxe (ou plutôt la syntaxe est correcte mais probablement vient d'une erreur) : il n'y a pas de virgule avant le "if".

    Essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $oWkC = $oWkS->{Cells}[$iR][$iC];
    $valeur = $oWkC->{Value} if($oWkC);
    $format = $oWkC->{Format} if ($oWkC);
    $SheetAlim->write($iR, $iC, $valeur, $format);
    (Au fait j'espère qu'il manque un bout à ton code, parce que là tu copies sus place...)

    --
    Jedaï

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 18
    Par défaut
    Jedai :
    ====

    C'est pas un probleme de virgule je viens d'essayer sans et ca fait la meme chose :

    Can't locate object method "Format" via package "Spreadsheet:arseExcel::Cell" at /opt/lampp/htdocs/xampp/test.pl line 250.

    my $SheetAlim = $workbook->add_worksheet("$alimentation");
    # Selection de a page $SheetAlim
    $SheetAlim->select();
    Remplissage de la feuille alimentation
    $valeur = 0;
    my $iR = 0;
    my $iC = 0;
    for($iR = $oWkS->{MinRow} ;
    defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ;
    $iR++)
    {
    for(my $iC = $oWkS->{MinCol} ;
    defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ;
    $iC++)
    {
    $oWkC = $oWkS->{Cells}[$iR][$iC];
    $valeur = $oWkC->Value if($oWkC);
    $format = $oWkC->Format if ($oWkC);
    $SheetAlim->write($iR, $iC, $valeur, $format);
    }
    }
    # Fermeture du fichier Excel
    $workbook->close();


    quand j'insere : $format = $oWkC->Format if ($oWkC); j'obtiens une erreur sinon ca marche, je recupere bien le contenu de mon fichier excel initial

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Une question bête (c'est tout moi ça ) mais en rajoutant pour tester cette ligne là dans ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    use Spreadsheet::ParseExcel::Format;
    ???

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 18
    Par défaut
    Ca y est deja !

    use strict;
    use CGI;
    use HTML::Parser;
    use LWP::UserAgent; # Client html
    use Spreadsheet::ParseExcel; # charge les routines d'extraction des donnees excel.
    #use Excel::Template::Element::Cell;
    use Spreadsheet::ParseExcel::Cell;
    use Spreadsheet::ParseExcel::Format;
    use Spreadsheet::ParseExcel::SaveParser; #
    use Spreadsheet::WriteExcel; # charge les routines de creation de documents excel.
    use Parse::RecDescent;
    use CGI::Carp qw(fatalsToBrowser); # Fonction permettant de tansmettre les message d'erreur Perl dans le
    # navigateur

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Citation Envoyé par atv_picco
    Ca y est deja !
    En nous distillant ton code morceau par morceau, je ne pouvais pas le deviner

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/06/2012, 10h28
  2. Can't locate object method "new" via package "URI"
    Par climz dans le forum Modules
    Réponses: 2
    Dernier message: 17/01/2008, 10h21
  3. Package present mais methode non reconnu !!
    Par Battosaiii dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 13/12/2005, 10h19
  4. Methode de drcherche a l,interieur de basse de donner texte
    Par philippe V dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 03/12/2002, 10h20

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