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 :
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...
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); }
Si quelqu'un sait comment faire, je suis preneur !
Merci d'avance pour votre aide !
Wapiti89
Partager