my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32:
+:OLE->new('Excel.Application', sub {$_[0]->Quit;});
my $Book = $Excel->Workbooks->Open(MYFILE, 1, 1);
my $Sheet = $Book->Worksheets("WORKSHEETNAME");
$Sheet->Activate();
my $value = $Sheet->Range("SOMECELL")->{Value};
I can't give you the spreadsheet, it's not mine, sorry (company policy)...
When I print out the $value, I get the same result over and over (that is "-2146826259", and the expected result should be a positive number not bigger than 100,000). If I use:
my $value = $Sheet->Range("SOMECELL")->Text();
to retrieve cell data then I get #NAME!.
I even tried debugging like this:
if (ref($value)) {
print $value->Type();
}
and it returns "10", which is VT_ERROR. I repeat, when you look at it in Excel application, it displays the correct results.
|