my $formatter = Spreadsheet::ParseExcel::FmtUnicode->new(); my $workbook = Spreadsheet::ParseExcel::Workbook->Parse($file, $formatter); foreach my $worksheet ($workbook->worksheets) { my ($row_min, $row_max) = $worksheet->row_range; my ($col_min, $col_max) = $worksheet->col_range; foreach my $row ($row_min .. $row_max) { foreach my $col ($col_min .. $col_max) { my $cell = $worksheet->get_cell($row, $col); next unless $cell; # this is what I imagine doing: if ($cell->{Type} eq 'pdf') { # get the PDF somehow .... } } } }