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 :

Convertir in fichier csv en fichier xls et mise en forme


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 30
    Points
    30
    Par défaut Convertir in fichier csv en fichier xls et mise en forme
    Bonjour,
    j'espère que vous allez tous bien,
    j'ai un fichier file.csv je veux le convertir en .xls excel pour l'instant j'ai le code qui fait la convertion. je vais vous le montrer, mais je veux le compléter pour que je puisse centrer les valeur des colonnes et colorer la première ligne qui est l'entete et la mettre en gras . et si possible les bordure. aussi.

    voilà le 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
     
    #!/usr/bin/perl
    use strict;use warnings;
    use Spreadsheet::WriteExcel;
     
    my ($sec, $min, $heure, $jour, $mois,$annee, undef, undef, undef) = localtime(time-3600*24);
    $mois += 1 and $annee -= 100;
    $jour = sprintf("%02d",$jour);
    $mois = sprintf("%02d",$mois);
    my $d0 = "$annee$mois$jour";
    open LIRE_CSV,"/home/Desktop/file_20$d0.csv"
        or die "E/S : $!\n";
     
    my $classeur = Spreadsheet::WriteExcel->new("/home/Desktop/file_20$d0.xls");
    my $feuille = $classeur->add_worksheet();
     
    while(<LIRE_CSV>){
            chomp;
            my @tmp = split /;/,$_;
            my $c = 0; # la colonne commence à zéro
            my $r = $. - 1; # le nombre de ligne correspond au nombre de lignes de .csv -  1 (commence à zéro)
            foreach my $e(@tmp){
                    $feuille->write($r,$c,$e);
                    ++$c;
            }
    }
    __END__
    Merci pour votre aide.

  2. #2
    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
    Tel qu'indiqué dans la documentation de Spreadsheet::WriteExcel, ce module a été remplacé par Excel::Writer::XLSX (que j'utilise d'ailleurs).
    Il est bien sûr possible de modifier les styles des cellules : tout est écrit dans la doc sur le formatage.
    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

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    BOnjour ,

    merci pour votre réponse,

    je n'ai jamais programmé avec le language perl , c'est ça le problème.
    je ne sais pas ou exactement je doit integré ce qu'il explique dans la doc

    merci

  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
    Avant la boucle qui remplit les éléments du fichier excel, tu définis des formats pour tes différents besoin, puis lors du remplissage, appelle la méthode write en précisant, le cas échéant, le format utilisé (4e paramètre). Pour les cellules qui n'ont pas besoin d'un formatage, tu fais un test et tu appelles la méthode avec les 3 paramètres que tu as actuellement.

    A l'aide de la méthode, set_row (appelée après la boucle while), tu peux aussi appliquer un format sur un ensemble de lignes (avec set_column, ce sera pour des colonnes).

    Regarde les exemples de la doc.
    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

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/09/2017, 11h47
  2. Convertir un fichier csv en fichier xls
    Par mond14 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 27/05/2013, 15h13
  3. script pour convertir une table HTML en fichier CSV (ou excel)
    Par whitespirit dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 20/08/2008, 08h30
  4. ecrire dans un fichier csv ou ods (xls)
    Par afrodje dans le forum VB.NET
    Réponses: 2
    Dernier message: 03/04/2007, 16h45

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