Problem mit Excel (Win32::OLE)

26/05/2009 - 12:58 von ratazong | Report spam
allo!
In einem (geerbtem) Programm finde ich den untenstehenden Code zum
Zugriff auf Excel (unter WinXP):
Ich lese damit eine grosse Menge Excel-Dateien ein und extrahiere
gezielt einige Werte.

Leider gibt es da 2 Probleme:
(1) Manchmal wartet Excel beim Oeffnen auf User-Bestaetigungen, etwa
wenn Macros in den .xls-files sind oder wenn es um Links zu anderen
Dateien geht
- das ist natuerlich laestig im Batch-Betrieb :-(
?? Wie kann ich das verhindern/unterdruecken? ??

(2) manchmal "stuerzt Excel ab" (beim Oeffnen, in zeile (*1) oder
(*2), siehe Beispielfehlermeldung unten)
?? wie kann ich das abfangen ??

Kennt ihr Loesungen für meine Probleme?
viele Gruesse
Henning



#
# Code
#
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
use Win32::OLE::Variant;

...

$Excel = Win32::OLE->new('Excel.Application', 'Quit');
$Book1 = $Excel->Workbooks->Open("$abs_file_name"); # open Excel
file (*1)
$Src_Sheet = $Book1->Sheets->item(1)-

Name; (*2)


...
@value = $Src_Sheet->Range("I22")->{'Value'};


#
# Beispielfehlermeldung
#
D:\Tools\QATools>D:\tools\perl\bin\perl swqa_report.pl
Tk::Error: Win32::OLE(0.1701) error 0x800a9c64
in METHOD/PROPERTYGET "" at swqa_report.pl line 1249
Carp::croak at D:/Tools/Perl/lib/Carp.pm line 191
Win32::OLE::AUTOLOAD at D:/Tools/Perl/site/lib/Win32/OLE/Lite.pm line
155
main::FillProofRecord at swqa_report.pl line 1249
 

Lesen sie die antworten

#1 Tim Landscheidt
26/05/2009 - 15:28 | Warnen spam
(anonymous) wrote:

[...]
Kennt ihr Loesungen für meine Probleme?



Schon einmal Spreadsheet::ParseExcel ausprobiert?

Tim

Ähnliche fragen