Formater un fichier excel
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
Code:
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; |
grâce à cette ligne
Code:
$range->{Value} = \@excel;
c'est injecté en une fois dans excel
j'aimerai faire le même pour les couleurs, mais ici je n'ai qu'une seule couleur :( avec
Code:
$range-> {Interior} -> {ColorIndex} = \@excel;
Là je dois dire que je cale un peu :oops:
Toutes idées ou conseils sont les bienvenus
Merci d'avance
Ztor1