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
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