PDA

View Full Version : [Perl - Win32::OLE] Gestione file Excel aperto


basileus_82
01-07-2011, 09:00
Ciao a tutti

devo gestire dei filoe excel

tutto fatto, solo che ogni volta che il file excel è aperto, quando faccio partire il programma, me lo chiude


...
my $file='Book.xls';
my $excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit');
my $workbook = $excel->Workbooks->Open( $file) or die "Error: can't open Workbook '$file'\n";


il problema potrebbe essere nel metodo Open che, eseguito, se trova $file aperto lo chiude e poi lo riapre

ho provato a fare un controllo



sub isWbOpen {
my $file=shift;
my $excel=shift;
if ($excel->Workbooks($file)->Activate) {
return 1;
} else {
return 0;
}
}



e quindi :


....
my $file='Book.xls';
my $excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit');
my $workbook;
if (isWbOpen($file,$excel)) {
$workbook=$excel->Workbooks($file)->Activate;
} else {
$workbook = $excel->Workbooks->Open( $file) or die "Error: can't open Workbook '$file'\n";
}
....

ma mi da errore, puù che altro mi dice che sto cercando di usare metodo activate su un valore non definito all'interno della routine isWbOpen
avete qualche suggerimento??

Grazie