Leser: 22
1 2 3 4 5 6
my $Excel = CreateObject OLE 'Excel.Application' || die $!; $book = $Excel->Workbooks->Open("$file")||die("Can not open $file"); $sheet = $book->Worksheets("Jul"); $sheet->Range("D23")->{'Value'}="some tests"; $Excel->ActiveWorkbook->Close(1); $Excel->Quit();
1
2
3
4
5
6
my $excel = Win32::OLE->GetActiveObject('Excel.Application')||die "couldnt get active one";
my $workbook = $excel-> Workbooks( $file ); # when file is already opened
unless( $workbook ) {
$workbook = $excel->Workbooks->Open( $file ) or die "Cannot open $file";
}
if(-e $workfile)
1 2 3 4 5 6 7 8 9
use Fcntl ':flock'; open my $fh, "D:/foobar.xls" or die "cant open!"; # try/catch file locking eval{ flock($fh, LOCK_EX) or die "can't lock!" }; if ( $@) { warn "open file!" && exit; }
eval{ flock($fh, LOCK_EX|LOCK_NB) or die "can't lock!" };
sysopen(FH, $file, O_WRONLY|O_EXCL) or die $!;
2009-07-31T05:35:10 fish12345[...]
Code (perl): (dl )sysopen(FH, $file, O_WRONLY|O_EXCL) or die $!;
Ist die Datei bereits geoeffnet hat das Skript keine Rechte die Datei exklusiv zu oeffnen, daher erscheint dann der Fehler "Permission denied". Ist die Datei nicht in Benutzung kann ich ganz normal mit dem FileHandle arbeiten bzw. ihn wieder schließen um dann das Sheet zu bearbeiten.
[...]