Bonjour à tous !

Je suis actuellement entrain de voir comment marche la manipulation de fichiers xls en Perl, et je suis tombé sur les modules CPAN Spreadsheet::WriteExcel et Spreadsheet:arseExcel.

Je vous explique l'objectif de mon programme. J'ouvre en lecture un fichier xls, je récupère par exemple certaines cellules que j'écris dans un nouveau fichier xls.

Jusqu'ici pas de problème concernant la lecture écriture en soit même, mais j'ai un problème concernant la "déco" des cellules.

En effet, j'arrive à récupérer le contenu des cellules, mais dans mon nouveau fichier, la déco est complètement perdue (fond rose, lignes de tableau tracées), pourtant il me semble bien que je récupère le format de chaque cellule avant d'écrire.

Voici mon script actuel :

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
#!/usr/bin/perl -w
 
use strict;
use Spreadsheet::ParseExcel;
use Spreadsheet::WriteExcel;
 
#Lecture
my $parser   = Spreadsheet::ParseExcel->new();
my $xls_r = $parser->parse('20_03.XLS');
 
#Ecriture
my $xls_w = Spreadsheet::WriteExcel->new('perl.xls');
my $worksheet_w = $xls_w->add_worksheet();
 
 
#Vérification
if ( !defined $xls_r ) {
	die $parser->error(), ".\n";
}
 
#valeurs min/max
my ( $row_min, $row_max ) = (3, 54);
my ( $col_min, $col_max ) = (19, 23);
 
#traitement
my $worksheet_r = $xls_r->worksheet(0);
 
for my $row ( $row_min .. $row_max ) {
	my $cell = $worksheet_r->get_cell( $row, 0);
	next unless $cell;
 
	#On récupère le format
	my $format = $cell->get_format();
 
	#On écrit			   	
	$worksheet_w->write($row, 0, $cell->value(), %$format);
}
En fait, c'est comme si la ligne 33 ne servait à rien. Qu'elle y soit ou pas, le résultat est le même...

Si quelqu'un sait comment faire, je suis preneur !

Merci d'avance pour votre aide !

Wapiti89