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 :

Problème pour lire un fichier EXCEL


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 29
    Par défaut Problème pour lire un fichier EXCEL
    Bonjour a tous.

    Je cherche à lire un fichier EXCEL et, plus exactement, le premier onglet en particulier. Mon but est de sauvegarder le contenu de cet onglet pour réinjecter les données sauvegardés lors de la prochaine génération de ce fichier EXCEL. Ce fichier EXCEL est générer par du perl avec le module WriteExcel

    En toute logique, j'ai été sur pour télécharger le module Spreadsheet:: ParseExcel

    Et j'ai fait ce tout petit morceau de code la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    use strict;
    use warnings;
    use File::Basename;
    use Spreadsheet::ParseExcel;
    # use Spreadsheet::WriteExcel;
    use POSIX;
     
    my $file = "C:\\script\\Calendrier2008\\TestLecture\\ACH-PF_COS.xls";
    my $excel = Spreadsheet::ParseExcel->read('$file');
    Mon soucis est que, quand je lance mon script, j'obtient cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Weak references are not implemented in the version of perl at D:/Perl/lib/Spreadsheet/ParseExcel.pm line 67
    BEGIN failed--compilation aborted at D:/Perl/lib/Spreadsheet/ParseExcel.pm line 67.
    Compilation failed in require at C:\script\Calendrier2008\TestLecture\LectureExcel.pl line 4.
    BEGIN failed--compilation aborted at C:\script\Calendrier2008\TestLecture\LectureExcel.pl line 4.
    Si je regarde la ligne 67 du ParseExcel.pm j'ai cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use Scalar::Util qw(weaken);
    et j'ai bien le Scalar d'installé.

    Pour info, je suis en PERL 5.6.1

  2. #2
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    use strict;
    use warnings;
    use File::Basename;
    use Spreadsheet::ParseExcel;
    # use Spreadsheet::WriteExcel;
    use POSIX;
     
    my $file = "C:/script/Calendrier2008/TestLecture/ACH-PF_COS.xls";
    my $excel = Spreadsheet::ParseExcel->read($file);
    Pas besoin de \\ en perl pour les chemins, il comprend parfaitement les /

    et pour ta boulette, tu as mis '$file' au lieu de $file ou "$file" et entre simple quote veut dire pas d'interpolation

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 29
    Par défaut
    Merci djibril mais cela ne change rien du tout.

    Que je mette $toto à la place de $file et que j'enleve les simples côte ne change rien.

    Visiblement, comme je l'indique au début, je doit avoir un problème, non pas au niveau du script, mais au niveau du module :
    --> BEGIN failed--compilation aborted at D:/Perl/lib/Spreadsheet/ParseExcel.pm line <--

    Selon le site CPAN, j'ai même vérifié ou téléchargé les modules :
    IO::File
    IO::Scalar
    Scalar::Util
    OLE::Storage_Lite

    Cela ne change rien et je craque


    Si quelqu'un a une idée à me soumettre pour extraire les données d'un onglet
    d'un fichier excel, je lui offre un café

  4. #4
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use File::Basename;
    use Spreadsheet::ParseExcel;
     
    my $file = "C:/script/Calendrier2008/TestLecture/ACH-PF_COS.xls";
    my $oBook = Spreadsheet::ParseExcel::Workbook->Parse($file) or die ("$!");
     
    my($iR, $iC, $oWkS, $oWkC);   
    foreach my $oWkS (@{$oBook->{Worksheet}}) {
        for(my $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];
              if(defined $oWkC) {
                print $oWkC->Value,"\t"; 
              } 
              else {
                print  "\t";
              }  
            }  
            print  "\n"; 
          }
      }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 29
    Par défaut
    Heueue, merci pour ta réponse DJIBRIL, mais je sait que cela ne va pas marcher.

    Pourquoi ?? Parce que tu utilises le Spreadsheet:: ParseExcel qui est le module que je n'arrive pas à faire marcher sur mon poste

    Il faut bien comprendre que ce n'est pas l'écriture du script qui me pose soucis, mais le chargement du module, uniquement le chargement du module, seulement le chargement du module

    Je pense que je devrait modifier le nom de ce post pour que cela soit plus clair .....

  6. #6
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Bonjour,

    Tu peux aussi utiliser Win32::OLE, il permet également de manipuler des fichiers Excel.
    http://search.cpan.org/~jdb/Win32-OL...2/OLE/Const.pm

    Jasmine,

  7. #7
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Citation Envoyé par baloo81 Voir le message
    Heueue, merci pour ta réponse DJIBRIL, mais je sait que cela ne va pas marcher.

    Pourquoi ?? Parce que tu utilises le Spreadsheet:: ParseExcel qui est le module que je n'arrive pas à faire marcher sur mon poste

    Il faut bien comprendre que ce n'est pas l'écriture du script qui me pose soucis, mais le chargement du module, uniquement le chargement du module, seulement le chargement du module

    Je pense que je devrait modifier le nom de ce post pour que cela soit plus clair .....
    Dans l'art de ne pas donner de précision, tu sembles être champion.
    Dans ce cas, pourquoi n'arrive tu pas à charger le module? l'as tu installé?
    Si non, pourquoi?

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/02/2010, 16h09
  2. Problème pour lire un fichier Xml avec Xpath
    Par adrix26 dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/11/2008, 17h06
  3. problème pour lire une feuille excel a partir d'Access
    Par h_adil dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/07/2008, 23h44
  4. problème pour lire un fichier wav
    Par r0d dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/05/2007, 19h56
  5. [C#] Problème pour lire un fichier xml
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/06/2006, 23h12

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