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 :

perl et excel


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 92
    Points : 26
    Points
    26
    Par défaut perl et excel
    Bonjour,

    Je suis actuellement en train de créer un programme qui fait du parsing de fichier texte et affiche le résultat sous excel.
    Je n'arrive pas à avancer car j'ai un soucis. Je m'explique

    voila mon code
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     	use strict;
    	use warnings;
        use Spreadsheet::WriteExcel;
     
        # Create a new workbook and add a worksheet
        my $workbook  = Spreadsheet::WriteExcel->new('C:\\Documents and Settings\\fonctionnement_excel.xls');
        my $worksheet = $workbook->add_worksheet('Test data');
    	my $fichier_log = "C:\\Trace_20140611_100702.log";    # Emplacement du fichier "fichier_log"
    	my $fh_log;
     
     
    open ($fh_log, '<', $fichier_log) or die "Impossible d'ouvrir le fichier en lecture";	# Ouverture du fichier pour la lecture
     
      # Set the column width for columns 1
        $worksheet->set_column(0, 0, 45);
     
     
        # Create a format for the headings
        my $format = $workbook->add_format();
        $format->set_bold();
     
    my $start_time_postural_assessment;
     
    while(my $ligne = <$fh_log>)	# Lire chaque ligne du fichier fh_log
    {
     
    	my($heure, $minute, $seconde, $milliseconde)=$ligne =~ /(\d\d):(\d\d):(\d\d).(\d\d\d)/;	# Initialisation des variables de l'heure
     
    		my $end_time_postural_assessment;	# Initialisation de end_time_postural_assessment
     
    	if ($ligne =~ /Postural assessment settings/)	# Si "Postural assessment settings" est écrit dans une ligne
    		{
    		$cpt_postural_assessment_study++;	# Incrémentation du compteur
    		my($heure, $minute, $seconde, $milliseconde)=$ligne =~ /(\d\d):(\d\d):(\d\d).(\d\d\d)/;
    		$start_time_postural_assessment = (((($heure * 60)+ $minute) *60 + ($seconde+($milliseconde/1000)))/60);	# Calculer la valeur de start_time_postural_assessment
    		}
    	elsif ($ligne =~ /Postural assessment complete/)
    		{
    		my($heure, $minute, $seconde, $milliseconde)=$ligne =~ /(\d\d):(\d\d):(\d\d).(\d\d\d)/;
    		$end_time_postural_assessment = (((($heure * 60)+ $minute) *60 + ($seconde+($milliseconde/1000)))/60);	# Calculer la valeur de end_time_postural_assessment
    		}
    	if (defined $end_time_postural_assessment)	# Si end_time_postural_assessment existe 
    		{
    		my $temps_postural_assessment = ($end_time_postural_assessment) - ($start_time_postural_assessment) if defined $end_time_postural_assessment; # Calculer la valeur de temps_postural_assessment
    		$temps_postural_assessment = sprintf("%0.2f", $temps_postural_assessment);	# Arrondir la valeur de temps_postural_assessment avec 2 chiffres après la virgule
    		my $temps_heures_postural_assessment = $temps_postural_assessment/60;	# Calculer la valeur de temps_heures_postural_assessment
    		$temps_heures_postural_assessment = sprintf("%0.2f", $temps_heures_postural_assessment);	# Arrondir la valeur de temps_heures_postural_assessment avec 2 chiffres après la virgule 
    		$worksheet -> write (5,0,"Etude numero $cpt_postural_assessment_study de la posture globale", $format);
    		$worksheet -> write (5,1,"$temps_postural_assessment",$format);	# Ecrire dans le fichier compteur_workflow_temps.txt
    		$worksheet -> write (5,2, 'minutes',$format);
    		$worksheet -> write (6,1, "$temps_heures_postural_assessment", $format);
    		$worksheet -> write (6,2,'heures',$format);
     
    		}
     
     
    }
     
    close $fh_log;	# Fermeture du fichier fh_txt
    Lorsque je compile, il n'y a pas d'erreur mais le fichier excel s'ouvre et n'affiche rien alors que moi je voudrais avoir un résultat comme celui -ci

    Etude numero 1 de la colonne vertébrale 27.52 minutes
    0,46 heures

    Etude numero 2 de la colonne vertébrale 20 minutes
    0,33 heures

    Voyez-vous ou se trouve mon erreur ?

    Merci bien

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Salut,

    vue que personne répond je me permet d'intervenir,

    peut être qu'un bout de ton Trace_20140611_100702.log aiderait à voir le pourquoi du comment

    Tu as fait des "prints xxx; <>;" pour voir si t'es regex retournaient bien quelque chose?

    car si ton code tourne et crée un fichier c'est que le problème vient de ce que tu écrit dessus

    En espérant avoir apporté une quelconque aide ou avancement.

    Bonne journée.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 92
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Barokar Voir le message
    Salut,

    vue que personne répond je me permet d'intervenir,

    peut être qu'un bout de ton Trace_20140611_100702.log aiderait à voir le pourquoi du comment

    Tu as fait des "prints xxx; <>;" pour voir si t'es regex retournaient bien quelque chose?

    car si ton code tourne et crée un fichier c'est que le problème vient de ce que tu écrit dessus

    En espérant avoir apporté une quelconque aide ou avancement.

    Bonne journée.
    Ne t'en fais pas j'ai réussi a trouver d'ou venez l'erreur
    merci quand même.

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

Discussions similaires

  1. [PERL ET EXCEL] problème de date
    Par henri93 dans le forum Langage
    Réponses: 0
    Dernier message: 13/09/2010, 11h38
  2. perl xml excel couleurs.
    Par blaise4714 dans le forum Modules
    Réponses: 0
    Dernier message: 20/12/2007, 15h04
  3. perl et excel
    Par blaise4714 dans le forum Langage
    Réponses: 4
    Dernier message: 14/08/2007, 16h35
  4. Perl et excel !
    Par atv_picco dans le forum Modules
    Réponses: 10
    Dernier message: 20/07/2006, 09h26
  5. PERL et EXCEL (Ouverture d'Excel avec modification)
    Par localboy dans le forum Modules
    Réponses: 11
    Dernier message: 09/05/2006, 09h18

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