use strict; use Spreadsheet::ParseExcel; my $BookObject = Spreadsheet::ParseExcel::Workbook->Parse('Excel/Test97.xls'); foreach my $WorksheetObject (@{$BookObject->{Worksheet}}) { print "--------- SHEET:", $WorksheetObject->{Name}, "\n"; for(my $RowIndex = $WorksheetObject->{MinRow}; # starting at minimum row value defined $WorksheetObject->{MaxRow} && $RowIndex <= $WorksheetObject->{MaxRow}; # ending at maximum row value $RowIndex++) { for (my $ColumnIndex = $WorksheetObject->{MinCol}; defined $WorksheetObject->{MaxCol} && $ColumnIndex <= $WorksheetObject->{MaxCol}; $ColumnIndex++) { $CellObject = $WorksheetObject->{Cells}[$RowIndex][$ColumnIndex]; # get cell print "( $RowIndex , $ColumnIndex ) =>", $CellObject->Value, "\n" # print cell contents ... if ($CellObject); # ... if cell exists } } }