SHEET: { for my $sheet ( 0 .. ( $book->{SheetCount} - 1) ) { my $work_sheet = $book->{Worksheet}[$sheet]; print "--------- SHEET:", $work_sheet->{Name}, "\n"; next SHEET if ! defined $work_sheet->{ MaxRow }; ROW: { for my $row ( $work_sheet->{MinRow} .. $work_sheet->{MaxRow} ) { next ROW if ! defined $work_sheet->{MaxCol}; for my $column ( $work_sheet->{MinCol} .. $work_sheet->{MaxCol} ) { my $cell = $work_sheet->{Cells}[$row][$column]; print "( $row , $column ) =>", $cell->Value, "\n" if($cell); } # next column } # next row } } # next sheet } #### my $cell = $work_sheet->{Cells}[$row][$column]; $oWkC = $oWkS->{Cells}[$iR][$iC]; #### my %book_data; SHEET: { for my $sheet ( 0 .. ( $book->{SheetCount} - 1) ) { $work_sheet = $book->{Worksheet}[$sheet]; my $sheet_name = $work_sheet->{Name}; $book_data{ $sheet_name } = []; next SHEET if ! defined $work_sheet->{ MaxRow }; ROW: { for my $row ( $work_sheet->{MinRow} .. $work_sheet->{MaxRow} ) { next ROW if ! defined $work_sheet->{MaxCol}; my @vals; for my $column ( $work_sheet->{MinCol} .. $work_sheet->{MaxCol} ) { my $cell = $work_sheet->{Cells}[$row][$column]; push @vals, $cell; } # next column $book_data{ $sheet_name }[ $row ] = \@vals; } # next row } } # next sheet }