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

Langage Perl Discussion :

copie le contenu d'un fichier xls dans un fichier txt


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut copie le contenu d'un fichier xls dans un fichier txt
    bonjour,
    d'avance merci.
    d'abord je tien à préciser que je suis débutant.
    en fait je voudrais parser un fichier .xls et récupérer ces données pour les envoyées à une base de données MySQL.
    pour ce je procède comme suit copier le fichier .xls vers .txt puis parser le fichier .txt (ce que je sais faire)
    alors j'ai fais des recherche sur internet pour arriver à copier le contenu d'un .xls dans un .txt
    voila le code que j'ai trouvé
    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
    #!c:/perl/bin/perl -w
    use strict;
     
    use warnings;
    use Spreadsheet::ParseExcel;
    my @lignes=0;
    my $path = "./xls_txt.txt";
    die "fichier non trouve !\n" if (! -s $path);
    open(FIC, ">>$path" ) or die "Can't open file: $!";
    @lignes = <FIC>;
    my $oBook =
     
     
    Spreadsheet::ParseExcel::Workbook->Parse('./20070611 cheklist_massy.xls');
    my($iR, $iC, $oWkS, $oWkC);
    foreach my $oWkS (@{$oBook->{Worksheet}}) {
       print "--------- SHEET:", $oWkS->{Name}, "\n";
      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];
        print FIC "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
        }
      }
      }
      Close FIC;
    mais j'ai comme erreur (fichier non trouvé)
    svp regarder si vous voyez des fautes à corriger que j'ai pas vu
    d'avance merci

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $path = "./xls_txt.txt";
    die "fichier non trouve !\n" if (! -s $path);

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    merci pour la réponse
    mais sincèrement je vois pas la différence dans ce que vous avez corrigé
    je l'ai pourtant essayé au cas ou je vois pas bien, mais j'ai toujours la même erreur
    merci de votre aide.
    regarder s'il ya une faute

  4. #4
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $path = "./xls_txt.txt";
    die "fichier non trouve !\n" if (! -s $path);
    Cette ligne veut dire : Arrete le script et met moi le message fichier non trouve si ce dernier n'existe pas ou à une taille égal à 0.
    Or je suppute que vous cherchez à le créer de novo, ainsi, au premier lancement du script, ce dernier ne sera jamais crée, vu qu'il n'existe pas .
    Donc étant débutant, faut éviter les copier coller à tout va et essayer soit même pas à pas, quite à ce faire guider par le forum, ce serait mieux pour l'apprentissage de perl

  5. #5
    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
    Essayé plutot ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    my $fichier_txt = "./xls_txt.txt";
    my $fichier_xls = "./20070611 cheklist_massy.xls";
    die "fichier non trouve !\n" if (! -s $fichier_xls);
    open(FIC, ">$fichier_txt" ) or die "impossible d'ecrire dans le fichier $fichier_txt : $!";
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $path = "./xls_txt.txt";
    die "fichier non trouve !\n" if (! -s $path);
    open(FIC, ">>$path" ) or die "Can't open file: $!";
    et remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Spreadsheet::ParseExcel::Workbook->Parse('./20070611 cheklist_massy.xls');
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Spreadsheet::ParseExcel::Workbook->Parse($fichier_xls);

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 296
    Points : 73
    Points
    73
    Par défaut
    merci de votre réponse
    j'ai fais ce que vous m'avez conseiller, mais j'ai tjs la même erreur (fichier non trouve !)
    voila mon code rechangé
    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
    #!c:/perl/bin/perl -w
    use strict;
     
    use warnings;
    use Spreadsheet::ParseExcel;
    my @lignes=0;
     
    my $fichier_txt = "./xls_txt.txt";
    my $fichier_xls = "./20070611 cheklist_massy.xls";
    die "fichier non trouve !\n" if (! -s $fichier_xls);
    open(FIC, ">$fichier_txt" ) or die "impossible d'ecrire dans le fichier $fichier_txt : $!";
     
    @lignes = <FIC>;
    my $oBook = Spreadsheet::ParseExcel::Workbook->Parse($fichier_xls);
    my($iR, $iC, $oWkS, $oWkC);
    foreach my $oWkS (@{$oBook->{Worksheet}}) {
       print "--------- SHEET:", $oWkS->{Name}, "\n";
      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];
        print FIC "( $iR , $iC ) =>", $oWkC->Value, "\n" if($oWkC);
        }
      }
      }
      Close FIC;
    merci de m'aider

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

Discussions similaires

  1. [XL-2007] Copie d'onglet avec des bouton dans un fichier .xls
    Par xdupart dans le forum Excel
    Réponses: 4
    Dernier message: 12/03/2015, 10h07
  2. Copie de fichiers XLS dans une table
    Par sebvita dans le forum Oracle
    Réponses: 3
    Dernier message: 28/12/2005, 09h13
  3. copier le contenu d'une page web dans un fichier texte
    Par wassila dans le forum C++Builder
    Réponses: 30
    Dernier message: 28/08/2005, 22h27
  4. Afficher le contenu d'un fichier xls dans un DBgrid
    Par bianconeri dans le forum C++Builder
    Réponses: 5
    Dernier message: 03/09/2004, 16h35
  5. Réponses: 2
    Dernier message: 16/07/2004, 09h30

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