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 :

Perte des 0 significatifs en premières positions dans Spreadsheet::ParseExcel


Sujet :

Modules Perl

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Perte des 0 significatifs en premières positions dans Spreadsheet::ParseExcel
    Bonjour,
    J'utilise la bibliothèque Spreadsheet::ParseExcel pour créer un document au format Excel.
    Dans certaines cellules au format texte (Text), j'ai de temps en temps besoin d'insérer des valeurs qui ressemblent à des chiffres et commençant par des 0.
    Les 0 disparaissent et la valeur semble être considérée comme un numérique.
    Par exemple 0123 devient 123, la cellule conserve quand même son format Texte.
    00235 devient 235.
    De même, ce qui semble être un chiffre élevé se voit affiché en notation scientifique (avec un E).
    Par exemple 1234567890123 est affiché en notation scientifique.
    Quelle doit être la solution pour que ces valeurs ne soient pas amputées et soient correctement affichées ?
    Merci de vos réponses.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Je doute que tu utilises Spreadsheet::ParseExcel pour créer des documents , mais plutôt pour lire.

    Néanmoins, ce comportement n'est pas du au module Perl mais à Excel. Si mes souvenir sont bons, c'est un comportement d'affichage et non du contenu de la cellule. Je crois que tu peux introduire un simple quote dans la cellule ' et l'affichage sera OK. Mais bon, la valeur de ta cellule sera du coup différente. Renseigne toi sur le forum Excel.

  3. #3
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Si tu utilises Spreadsheet::WriteExcel pour écrire ton fichier excel, cela doit pouvoir se régler avec les méthodes de Format et plus particulièrement la fonction set_num_format() où tu forcerais ton champ qui ressemble à un nombre pour ne pas le modifier.

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Beniou Voir le message
    Si tu utilises Spreadsheet::WriteExcel pour écrire ton fichier excel, cela doit pouvoir se régler avec les méthodes de Format et plus particulièrement la fonction set_num_format() où tu forcerais ton champ qui ressemble à un nombre pour ne pas le modifier.

    Oui la solution serait pas mal mais j'utilise la méthode AddCell de la bibliothèque Spreadsheet:arseExcel et il faudrait que je puisse jouer sur le dernier paramètre (le $FormatNumber) ...
    $wsHIR_REG->AddCell( $rHIR_REG, $col, $data, $format_number );

    Mais je ne sais pas comment le définir pour que mes valeurs ne soient plus tronquées.
    Une idée ?

  5. #5
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    En fait le module qui contient cette fonction est Spreadsheet::ParseExcel::SaveParser (je ne la trouvais pas dans Spreadsheet::ParseExcel).
    Ok ce module permet d'écrire directement dans le fichier excel ouvert. Je ne l'ai jamais utilisé et la page du module est assez avare en exemple...

    Mais peut être que le format suit les mêmes règles que le format du module Spreadsheet::WriteExcel (qui est largement mieux commenté) que j'ai mentionné vu que cela sera interpreté par Excel

    Sinon suivant l'exemple du module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     # Add a new string in cell C1 with the format from cell A3.
        my $cell = $worksheet->get_cell( $row + 2, $col );
        my $format_number = $cell->{FormatNo};
    Tu pourrais tester sur une cellule existante et voir la syntaxe des formats utilisés...

Discussions similaires

  1. [FAQ] Perte des marges dans les états Access
    Par Gretch_34 dans le forum Contribuez
    Réponses: 10
    Dernier message: 27/09/2011, 12h39
  2. Réponses: 1
    Dernier message: 08/09/2011, 17h50
  3. Réponses: 3
    Dernier message: 02/02/2011, 21h34
  4. [A97] Perte des relations dans la fenêtre Relations
    Par JeremieT dans le forum Access
    Réponses: 5
    Dernier message: 17/01/2007, 10h58
  5. [WebForms]Perte des accents dans Request.QueryString
    Par Matth_S dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 15/11/2006, 18h21

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