Bonjour,
Voila mon problème.
Je désire créer des fichiers excel via Active perl en utilisant win32 OLE
Cela marche très bien et c'est très rapide, mais lors du formatage cela "galère"
N'y a t'il pas moyen de "préparer" les formats dans un tableau et de les injecter en une fois ( comme pour les données ) au lieu de passer cell par cell
Par exemple, ce code crée un excel et remplis une matrice de 5 X 5 avec des valeurs allant de 11 à 55
grâce à cette ligne
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 use strict; use Text::ParseWords; use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel'; $Win32::OLE::Warn = 3; my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); $Excel->{Visible} = 1; my $Book = $Excel->Workbooks->Add; my $Sheet = $Book->Worksheets(1); my $range; my @excel=(); for my $i (1..5){ my @clean_data=(); my @clean_color=(); for my $j (1..5){ $clean_data[$j]=$i*10+$j; } my $a=shift(@clean_data); push @excel,\@clean_data; } $range = $Sheet->Range('A1:E5'); $range->{Value} = \@excel; $range-> {Interior} -> {ColorIndex} = \@excel; my $Filename = 'c:\documents\test02.xls'; unlink $Filename if -f $Filename; $Book->SaveAs($Filename); $Book->Close;
c'est injecté en une fois dans excel
Code : Sélectionner tout - Visualiser dans une fenêtre à part $range->{Value} = \@excel;
j'aimerai faire le même pour les couleurs, mais ici je n'ai qu'une seule couleuravec
Là je dois dire que je cale un peu
Code : Sélectionner tout - Visualiser dans une fenêtre à part $range-> {Interior} -> {ColorIndex} = \@excel;
Toutes idées ou conseils sont les bienvenus
Merci d'avance
Ztor1
Partager