in reply to Re^3: Error while reading .xls file
in thread Error while reading .xls file

Hi, is it necessary to close the file after reading it too..? i have updated the code,i.e. added some function and finding the same error when i run it. I have added following function

&extract_data(); sub extract_data() { my $parsedata = Spreadsheet::ParseExcel->new(); my $workbook_data = $parsedata->parse('test.xls'); for my $worksheet1 ( $workbook_data->worksheet(0) ) { for my $col ($col_min .. $col_max) { my $cell = $worksheet1->get_cell( 0, $col ); if($p_name eq $cell) { print("Done"); } } } }

when i run the code it give me (

Can't call method "worksheet" on an undefined value at D:\Perl\Xls_han +dling.pl line 110, <STDIN> line 6.
) error. And if i try to close parser i.e. $parser -> close() it says (
Can't call method "worksheet" on an undefined value at D:\Perl\Xls_han +dling.pl line 110, <STDIN> line 6.
)

Replies are listed 'Best First'.
Re^5: Error while reading .xls file
by AppleFritter (Vicar) on Aug 31, 2014 at 13:17 UTC

    Hi, is it necessary to close the file after reading it too..?

    Have you tried it, to see if it makes a difference? You're also still not using error checking, as the module's documentation strongly recommends you do and as I suggested in my reply above. Please do so!

    On a side note, could you use <code> or <tt> tags for the error messages? It'll make your post much more readable to future readers. Thanks!

Re^5: Error while reading .xls file
by soonix (Chancellor) on Sep 01, 2014 at 20:39 UTC
    Hi, I assume line 110 of your script is
    for my $worksheet1 ( $workbook_data->worksheet(0) )
    and the error message tells you that $workbook_data is undefined at that point. Which in turn means that
    my $workbook_data = $parsedata->parse('test.xls');

    did encounter some problem...

    AppleFritter already told you how to find this out.