use Spreadsheet::ParseExcel::Simple;
use Data::Dumper;
my $xls = Spreadsheet::ParseExcel::Simple->read('excel.xls');
foreach my $sheet ($xls->sheets) {
die Dumper $sheet;
#while ($sheet->has_data) {
# my @data = $sheet->next_row;
#}
}
####
use Spreadsheet::ParseExcel::Simple;
my $xls = Spreadsheet::ParseExcel::Simple->read('excel.xls');
foreach my $sheet ($xls->sheets) {
#unmerge
unmerge($sheet->{sheet});
while ($sheet->has_data) {
my @data = $sheet->next_row;
print join("\t", @data),"\n";
}
}
sub unmerge{
my($oWkS) =@_;
print "--------- SHEET:", $oWkS->{Name}, "\n";
for(my $iR = $oWkS->{MinRow} ;
defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
for(my $iC = $oWkS->{MinCol} ;
defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) {
$oWkC = $oWkS->{Cells}[$iR][$iC];
next unless $oWkC;
if($oWkC->is_merged){
if($oWkC->Value){
print "COPY V=$oWkC->{Format}->{AlignV} H=$oWkC->{Format}->{AlignH}\n";
for my $i (1..$oWkC->{Format}->{AlignV}){
print "ADDV [$iR+$i][$iC] \n";
$oWkS->{Cells}[$iR+$i][$iC]->{_Value} = $oWkC->Value;
$oWkS->{Cells}[$iR+$i][$iC]->{Merged}=0;
}
for my $i (1..$oWkC->{Format}->{AlignH}){
print "ADDH [$iR][$iC+$i] \n";
$oWkS->{Cells}[$iR][$iC+$i]->{_Value} = $oWkC->Value;
$oWkS->{Cells}[$iR][$iC+$i]->{Merged}=0;
}
}
}
print "( $iR , $iC ) ==", $oWkC->Value, " ", $oWkC->{Merged},"\n";
}
}
}
####
--------- SHEET:Sheet1
COPY V=2 H=0
ADDV [0+1][0]
ADDV [0+2][0]
( 0 , 0 ) ==cat 1
( 0 , 1 ) ==Fluffy
( 1 , 0 ) ==cat 0
( 1 , 1 ) ==Vera
( 2 , 0 ) ==cat 0
( 2 , 1 ) ==Manxie
cat Fluffy
cat Vera
cat Manxie