Hallo,
ich verwende WIN32::OLE weil ich mit Spreadsheet::ParseExcel keine Formels auslesen kann.
Das geht mit WIN32::OLE sehr gut.
Lesen von einer Excel-Datei geht gut
Schreiben auf eine neu erzeugte Excel-worksheet geht auch.
Aber ich bekomme es einfach nicht hin die Zelldaten einer Datei.xls
die ich geöffnet habe und auslese zu modifizieren und wieder zurückzuschreiben.
Wie kann ich Zellen modifizieren und die Datei zurückschreiben.
Vielen Dank, Henry
Hier mein funktionierender Lese-Teil:
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
31
32
33
#!"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; # die on errors...
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("datei1.xls"); # open Excel file
my $Sheet = $Book->Worksheets(1); # select worksheet number 1 (you can also select a worksheet by name)
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";
}
# hier soll irgendwas modifiziert werden
$Book->Close;
print "ready<br>\n";
Wie modifiziere ich die Zelldaten und reicht das Close zum zurückschreiben ?