in reply to Reading Excel

It looks like your $Book object is undefined.

Try adding error-checking:

$Win32::OLE::Warn = 3; # Die on Errors. my $excelfile = 'C:/perlpractice/FU_HMI_List.xlsm'; my $Excel = Win32::OLE->GetActiveObject('Excel.Application') or Win32::OLE->new('Excel.Application', 'Quit') or die Win32::OLE->LastError(); my $Book = $Excel->Workbooks->Open($excelfile) or die Win32::OLE->Last +Error(); my $Sheet = $Book->Worksheets(3) or die Win32::OLE->LastError();
"use strict;" would help too, in the long run.

        ...it is unhealthy to remain near things that are in the process of blowing up.     man page for WARP, by Larry Wall

Replies are listed 'Best First'.
Re^2: Reading Excel
by ravi179 (Novice) on Jan 27, 2017 at 06:28 UTC

    OLE exception from "Microsoft Excel"

    unable to get the open property of the workbook class

    Win32::ole(0.1709)error 0x800a03ec

    in method/propertyget "open" at C:\perl\Read.pl line 9

    iam getting this

      Please show the code you are running.

      Note that the error message complains about open with a lower case "o".

      The Excel method is named Open, with an upper case "O".

        use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel'; $Win32::OLE::Warn = 3; $excelfile= "C:/perlpractice/FU_HMI_List.xlsm"; my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); # get alread +y active Excel # applicatio +n or open new $Book = $Excel->Workbooks->Open($excelfile); # open Excel file $Sheet = $Book->Worksheets(3); # select worksheet number 1 $array = $Sheet->Range("B1:E40")->{'Value'}; # get the cont +ents $Book->Close; $i=0; $j=0; foreach $ref_array (@$array) { # loop through + the array $i++; $j=0; foreach $scalar (@$ref_array) { $AOA[$i][$j]="$scalar"; $j++; print $j; } } print "$AOA[1][1]";