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 :

Bug Spreadsheet::WriteExcel, le retour !, version Formules.


Sujet :

Modules Perl

  1. #1
    Membre à l'essai Avatar de myspanique
    Femme Profil pro
    Prof de maths + Stagiaire en informatique
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prof de maths + Stagiaire en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 17
    Points
    17
    Par défaut Bug Spreadsheet::WriteExcel, le retour !, version Formules.
    Bonjour,

    Décidément, ce module me cause du souci. Le topic n-3 est déjà de moi, et déjà pour ce module !
    Cette fois-ci il est au bon endroit, www-data a le droit d'y aller et ne s'en prive pas !

    Je rencontre à présent un souci au niveau de l'écriture de formules.
    J'ai un joli programme qui récupère des données dans des fichiers, les écris dans le tableur, qui fait tout plein de choses avec (moyenne, écart type, graphique...).
    Je le lance sous le terminal, aucun souci.
    Je le lance via ma page web... et il décède pile poil au moment où il est question d'écrire une formule dans le fichier (alors qu'écrire quoi que ce soit d'autre ne pose pas de problème).

    Mon maître de stage et moi avons pensé à pas mal de choses... Mais visiblement pas encore aux bonnes. (y'a pas un smiley qui se gratte la tête? ). et je ne trouve aucune littérature là dessus.
    Merci pour vos idées que je n'aurais pas encore eues... !


    Pour vous donner une idée pas du tout contractuelle :

    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
     
    #!/usr/bin/perl -w
     
    use IO::File;
    use CGI qw(:standard) ;
    use PAGEWEB;
    use strict ;
    use Date::Calc qw(Delta_DHMS) ;
    use Spreadsheet::WriteExcel ;
    use Data::Dumper;
    $Data::Dumper::Purity = 1;
     
     
    print "Content-type: text/html ; charset=UTF-8\n\n";
    print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
     
    print "<html>";
    print 	"<head>
    	<title>Etude du comportement des souris : souris</title>";
    print "</head>" ;
     
     
    my $variables ....
     
    print "<body>" ;
     
    $workbook  = Spreadsheet::WriteExcel->new('formula_result.xls');	
    $worksheet = $workbook->add_worksheet();
    $format    = $workbook->add_format(color => 'blue');
     
     
    $worksheet->write('A1', '1+2');    
    $worksheet->write('A2', '=1+2',  $format);     #Le programme décède ici... à cause du "=" !
    $worksheet->write('A3', '"ABC"');
    $worksheet->write('A4', '=IF(A1 > 1, TRUE, FALSE)');
    $worksheet->write('A5', '1/0');
     
    $workbook->close() ;	
     
     
    print "<a href = '/donnees/experiences/$fichier_traite'>Cliquez ici pour telecharger</a>";
    print "</body>" ;
     
    }

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Juste une idée comme ça: as-tu essayer de mettre la formule dans une variable intermédiaire?

  3. #3
    Membre à l'essai Avatar de myspanique
    Femme Profil pro
    Prof de maths + Stagiaire en informatique
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prof de maths + Stagiaire en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Yep, c'est ce que je fais dans mon "vrai" programme...

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Deux points :
    - je te conseille plutôt l'utilisation du module Excel::Writer::XLSX (interface compatible avec Spreadsheet::WriteExcel, et en plus supporte le nouveau format XLSX).
    - pour écrire une formule dans une cellule, utilise la méthode write_formula au lieu de write (j'ai aussi eu des plantages en utilisant write pour une formule).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  5. #5
    Membre à l'essai Avatar de myspanique
    Femme Profil pro
    Prof de maths + Stagiaire en informatique
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prof de maths + Stagiaire en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Une question et une réponse :

    Excel::Writer::XLSX génère t'il aussi du "simple" xls? je vais de ce pas me renseigner.

    J'ai utilisé indifféremment write ou write_formula. Ca ne change rien...

  6. #6
    Membre à l'essai Avatar de myspanique
    Femme Profil pro
    Prof de maths + Stagiaire en informatique
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prof de maths + Stagiaire en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Bon bon bon.
    Je viens d'installer Excel::Writer::XLSX ;
    En regardant dans var/log/apache2/error.log (oui, je suis sous Debian), j'ai vu qu'on me réclamait Parse::RecDescent ; je ne sais pas vraiment pourquoi, mais soit, je l'ai installé.

    Depuis, j'ai un nouveau souci (et demi).

    Je n'arrive plus à faire tourner le programme sous www-data ; ça marche dans le terminal, mais, surprise !, les résultats de mes formules ne sont pas bons.
    Par exemple, "=1+2" donne 0 ...?!, mais si j'étire à la main la formule, les autres cases reçoivent 3, sans que la première ne change.

    Pour info, j'ouvre le fichier avec Libre Office Calc.

    Bref, j'y retourne.

  7. #7
    Membre à l'essai Avatar de myspanique
    Femme Profil pro
    Prof de maths + Stagiaire en informatique
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prof de maths + Stagiaire en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    C'est pas gagné.
    Le souci de la formule qui donne 0 n'ayant pas lieu avec SpreadSheet, j'y suis repassée.
    Ca marche toujours parfaitement en ligne de commandes, mais toujours pas via la page web
    Qu'aurais-je bien pu négliger?

  8. #8
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Je suis en train d'essayer ton script, mais je remarque qu'il ne fonctionne pas "tel quel", ... je reviens dès que j'ai du nouveau.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  9. #9
    Membre à l'essai Avatar de myspanique
    Femme Profil pro
    Prof de maths + Stagiaire en informatique
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prof de maths + Stagiaire en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Pour info, j'ai branché le 3eme cerveau du labo dessus, et il n'a pas eu non plus l'illumination.
    Du coup j'ai contacté M. J. McNamara, on verra bien ce qu'il me dit !

  10. #10
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Désolé, je n'ai pas pu regarder aujourd'hui, j'essaye d'y penser demain matin... sinon, faut faire un petit up
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  11. #11
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Alors, j'ai testé ce programme (corrigé de ton 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
    #!/usr/bin/perl -w
     
    use IO::File;
    use CGI qw(:standard) ;
    #use PAGEWEB;
    use strict ;
    #use Date::Calc qw(Delta_DHMS) ;
    #use Spreadsheet::WriteExcel;
    use Excel::Writer::XLSX;
    use Data::Dumper;
    $Data::Dumper::Purity = 1;
     
     
    print "Content-type: text/html ; charset=UTF-8\n\n";
    print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
     
    print "<html>";
    print 	"<head>
    	<title>Etude du comportement des souris : souris</title>";
    print "</head>" ;
     
     
    #my $variables ....
     
    #print "<body>" ;
     
    my $workbook  = Excel::Writer::XLSX->new('formula_result.xlsx'); #Spreadsheet::WriteExcel->new('formula_result.xls');
    my $worksheet = $workbook->add_worksheet();
    my $format    = $workbook->add_format(color => 'blue');
     
     
    $worksheet->write('A1', '1+2');
    $worksheet->write('A2', '=1+2',  $format);     #Le programme décède ici... à cause du "=" !
    $worksheet->write('A3', '"ABC"');
    $worksheet->write('A4', '=IF(A1 > 1, TRUE, FALSE)');
    $worksheet->write('A5', '1/0');
     
    $workbook->close() ;
     
     
    #print "<a href = '/donnees/experiences/$fichier_traite'>Cliquez ici pour telecharger</a>";
    #print "</body>" ;
    Je l'ai essayé avec Spreadsheet::WriteExcel et Excel::Writer::XSLX et en laissant l'usage de write (bien que je préconise write_formula), et j'obtiens le bon résultat.
    Cela peut donc venir des versions de Excel, de perl et des modules que tu utilises. Qu'en est-il ?
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  12. #12
    Membre à l'essai Avatar de myspanique
    Femme Profil pro
    Prof de maths + Stagiaire en informatique
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prof de maths + Stagiaire en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Ha!!

    Après réponse du concepteur de la librairie, il s'avère qu'en effet le souci provenait bien de Parse::RecDecsent , sur lequel www-data n'avait pas le droit de lecture XD
    Problème réglé, donc. Et finalement, c'était le même que la dernière fois, alors que je pensais l'avoir réglé.
    Bigre !

    En tous cas, merci Philou pour ton aide et ta patience !

  13. #13
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Du coup, tu vas utiliser Excel::Write::XLSX ou Spreadsheet::WriteExcel ?
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  14. #14
    Membre à l'essai Avatar de myspanique
    Femme Profil pro
    Prof de maths + Stagiaire en informatique
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prof de maths + Stagiaire en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Spreadsheet::WriteExcel ; parce que je ne suis pas certaine que tous les chercheurs de mon labo qui utiliseront mes fichiers disposent d'un tableur qui accepte vraiment les .xlsx ... déjà le mien il aime pas trop, alors... !

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

Discussions similaires

  1. bug compiz/firefox le retour ?
    Par eridan26 dans le forum Bubuntu
    Réponses: 7
    Dernier message: 01/07/2009, 17h14
  2. Spreadsheet WriteExcel qui n'est pas connu
    Par witch dans le forum Modules
    Réponses: 2
    Dernier message: 10/06/2008, 12h26
  3. [Excel] Spreadsheet::WriteExcel
    Par Longrais dans le forum Modules
    Réponses: 5
    Dernier message: 20/03/2006, 14h48
  4. [Spreadsheet-WriteExcel] Largeur des colonnes Excel
    Par Longrais dans le forum Modules
    Réponses: 2
    Dernier message: 17/10/2005, 16h41

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