Thread WIN32::OLE Excel lesen, modifizieren und zurückschreiben (5 answers)
Opened by Henry07 at 2012-06-30 11:20

Gast Henry
 2012-06-30 19:12
#159487 #159487
Ich habe jetzt ein Beispiel von Kean gefunden und ausprobiert.
Es läuft, aber sobald ich z.B. der Zelle 3,5 einen Wert zuweise
(hier "1") und mit $Book->Close; abspeichern will gibt es folgenden Error:

Win32::OLE(0.1709) error 0x800706be: "Der Remoteprozeduraufruf ist fehlgeschlagen"
# in METHOD/PROPERTYGET "Close" at C:/xampp/cgi-bin/rw_excel/dump_excel3a.pl line 38

(das ist die Zeile mit $Book->Close;)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!"C:\xampp\perl\bin\perl.exe"  -w

use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';

$Win32::OLE::Warn = 3;
print "Content-type: text/html\n\n";

my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit');

$Excel->{Visible} = 1;
my $Book = $Excel->Workbooks->Open("C:/xampp/cgi-bin/neoplast/rw_excel/datei1.xls");
my $Sheet = $Book->Worksheets(1);
foreach my $row (1..10){
foreach my $col (1..4) {
my $Val = $Sheet->Cells($row,$col)->{'Value'}; # shows value
my $Dis = $Sheet->Cells($row,$col)->{'Text'}; # shows formated value
my $Form = $Sheet->Cells($row,$col)->{'Formula'}; # shows formula
print "$row, $col, $Dis, $Val, $Form<br>\n";
}
print "<br>\n";
}

$Sheet->Cells(3,5)->{'Value'} = "1";
my $value = $Sheet->Cells(3,5)->{'Value'};

$Book->Close;
print "ready<br>\n";


Folglich wird nichts abgespeicher, sondern ich muss den Prozess mit dem
Taskmangaer killen, damits weitergeht.

Wo liegt mein Denkfehler ?

Henry
Last edited: 2012-06-30 21:06:45 +0200 (CEST)

View full thread WIN32::OLE Excel lesen, modifizieren und zurückschreiben