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 :

Insérer une ligne dans un fichier Excel


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 53
    Points : 35
    Points
    35
    Par défaut Insérer une ligne dans un fichier Excel
    Bonjour,
    malheureusement je n'ai pas trouvé mon bonheur!

    j'ai un template Excel que je dois remplir à l'aide d'un programme Perl.
    Pour ce faire, le template possède déjà un format. En ce qui concerne les lignes à remplir, trois sont déjà définies (avec cadre etc).
    Le programme dois en fonction du volume du fichier source (à écrire dans Excel) à chaque fois insérer une nouvelle ligne en prenant en compte le quadrillage déjà effectué.

    voici mon bout de programme:

    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
     
    use warnings;
     
     
    use Cwd;
    use OLE;
    use Win32::OLE::Const "Microsoft Excel";
     
    my $directory = &getcwd;
    my ( $xl_report ) = "$directory/TemplateAuswertung.xlsx";
    my ( $excel, $workbook, $sheet, $row);
     
        $excel = CreateObject OLE 'Excel.Application';
        $excel -> {Visible} = 1;
     
     
        $workbook = $excel    -> Workbooks  -> Open ( "$xl_report" ) or &terminate ( "open $xl_report" );
        $sheet    = $workbook -> Worksheets(1);
     
        $sheet -> Activate();
     
        $excel -> ActiveWindow    -> {FreezePanes} = "True";
        $sheet -> {Name} = "Test Report" . $workbook -> Worksheets -> {Count};
     
        $excel    -> {DisplayAlerts} = 0;
     
        $row   = 16;
        for ($row = 16; $row <=20; $row++ )
        {
    	$sheet->Range( "A" . $row )->{Value} = "data";
    	#$sheet->Range( '17,1' )->Insert();
     
         }
     
     
         $workbook -> SaveAs ( "$xl_report" );
     
         $workbook -> Save;
         $workbook -> Close;
         $excel    -> Quit;
     
    sub terminate
    {
        print "\a\a\nCould not @_ for the following reason:\n\n$!\n";
        print "This program will now terminate.  Press <ENTER> to exit.";
        <STDIN>;
        exit;
    }
    Je peux écrire mes lignes, mais insérer une qui prenne en compte la mise en page manuelle (quadrillage) je n'y arrive pas.

    Qui a une idée?

    Merci!

    le template: TemplateAuswertung.xlsx
    résulat escompté: Ergebnis.xlsx
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    pas sûr d'avoir bien compris ton problème, tu veux reproduire le style de tes cellules pour les nouvelles lignes ?

    si c'est bien ça, tu trouveras peut-être quelques idées ici

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 53
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Gardyen Voir le message
    pas sûr d'avoir bien compris ton problème, tu veux reproduire le style de tes cellules pour les nouvelles lignes ?

    si c'est bien ça, tu trouveras peut-être quelques idées ici
    Bonjour,
    malheureusement je n'y ai pas trouvé quelque chose de bon pour moi.

    Pour répondre à la question de savoir si tu as compris ou pas, je dirais que le gros du problème c'est de réussir à insérer les lignes. Je pense que Excel reproduira le quadrillage tout seul, c'est ce qui arrive lorsqu'on fait une insertion manuelle!

  4. #4
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    pour le quadrillage je suis pas sûr, dans le premier lien il y a de quoi changer un style au cas où.

    ensuite il y a cette fonction pour insérer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Sheet->Cells(2,1)->EntireRow->Insert;
    c'est ce que tu cherchais ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 53
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Gardyen Voir le message
    pour le quadrillage je suis pas sûr, dans le premier lien il y a de quoi changer un style au cas où.

    ensuite il y a cette fonction pour insérer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Sheet->Cells(2,1)->EntireRow->Insert;
    c'est ce que tu cherchais ?
    Ouais,
    j'au trouvé celle-là.
    maintenant j'essaie de reproduire le quadrillage. Peut-être qu'il faudra lui mettre des arguments à la méthode Insert?
    le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    -> Insert($row,$column,$format);
    je vais voir

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

Discussions similaires

  1. [Lazarus] Insérer une ligne dans un fichier Excel par OLE
    Par Yoanben dans le forum Lazarus
    Réponses: 0
    Dernier message: 01/04/2010, 07h49
  2. Insérer une ligne dans un fichier texte sans modifier l'encodage
    Par Benzeghiba dans le forum Framework .NET
    Réponses: 6
    Dernier message: 26/01/2009, 22h34
  3. Réponses: 7
    Dernier message: 24/09/2008, 22h35
  4. [EXCEL] Insérer une ligne dans un fichier existant
    Par willos_fr dans le forum Débuter
    Réponses: 6
    Dernier message: 18/06/2008, 12h25
  5. [VBA] insérer une ligne dans un fichier excel
    Par cokinoumasterflash dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2005, 18h52

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