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 49 50 51 52 53 54 55 56 57 58
| use strict;
use warnings;
use Spreadsheet::ParseExcel;
my $essai;
my $sheet;
my $col;
my $row;
my $fileName = './croctarts.xls';
my $i = 0;
my $recherche = 'Z';
my $aff = 1;
#Lecture
my $parser = Spreadsheet::ParseExcel->new();
my $essai = $parser->parse($fileName);
#Vérification
if ( !defined $essai ) {
die "Parsing error: ", $parser->error(), ".\n";
}
print "=========================================\n";
print "FILE : ", $essai->{File} , "\n";
print "COUNT : ", $essai->{SheetCount} , "\n";
print "AUTHOR : ", $essai->{Author} , "\n";
print "=========================================\n\n";
$sheet = $essai->Worksheet(0); #sélectionne la première feuille
$col = $sheet->{MinCol}; #sélectionne la première colonne
print "=========================================\n";
print "--------- SHEET:", $sheet->{Name}, "\n"; #affiche le nom des feuilles excel
print "=========================================\n";
if ( $aff == 1 ) {
print "symbole recherche = $recherche\n";
}
$recherche = quotemeta($recherche);
my $pattern = qr{$recherche};
for my $row ($sheet->{MinRow} + 1 .. $sheet->{MaxRow}) { # on saute la 1ere ligne
my $cell = $sheet->get_cell($row, $col);
if ( $cell->value() =~ $pattern ) {
$i++;
print "( $row ) => ",
join(',', map { $sheet->get_cell($row, $_)->value() } $sheet->{MinCol} .. $sheet->{MaxCol}),
"\n";
}
}
print "nombre de lignes : $i\n"; |
Partager