use strict; use Spreadsheet::ParseXLSX; my ($file) = @ARGV; my $parser = Spreadsheet::ParseXLSX->new(); my $workbook = $parser->parse($file); if ( !defined $workbook ) { die $parser->error(), ".\n";} for my $worksheet ( $workbook->worksheets() ){ my ( $row_min, $row_max ) = $worksheet->row_range(); my ( $col_min, $col_max ) = $worksheet->col_range(); # print "Row: $row_min $row_max, Col: $col_min $col_max\n"; for my $row ( $row_min .. $row_max ) { for my $col ( $col_min .. $col_max ) { my $cell = $worksheet->get_cell( $row, $col ); next unless $cell; print "Row,Col= ($row, $col)\n"; print "Value=", $cell->value(),"\n"; print "Unformatted=", $cell->unformatted(), "\n"; } } }