Try
#!perl
use strict;
use Win32::OLE 'in';
use Win32::OLE::Const 'Microsoft Excel';
$Win32::OLE::Warn = 3;
my $Excel = Win32::OLE->new('Excel.Application','Quit')
or die "Cannot open Excel";
my $Book = $Excel->workbooks->Open( 'c:/foo.xlsx')
or die "Cannot open Spreadsheet";
for my $Sheet ( in $Book->Worksheets ) {
my $first = $Sheet->Cells->Find({What=>"cabbage"});
if ($first->{value}){
printf "%s %-20s %s\n",$Sheet->{name},$first->{address},$first->{v
+alue};
my $last = $first;
while (my $next = $Sheet->Cells->FindNext($last)){
last if $next->{address} eq $first->{address};
printf "%s %-20s %s\n",$Sheet->{name},$next->{address},$next->{v
+alue};
$last = $next;
};
}
}
poj