Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11264[/thread]

Excel-Datei öffnen - editieren - speichern

Leser: 9


<< >> 5 Einträge, 1 Seite
MartinR
 2008-02-08 09:33
#105697 #105697
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
Hi,

ich suche nach einer Möglichkeit eine vorhandene Excel-Datei zu öffnen, bestimmte Felder zu editieren und die Datei wieder abzuspeichern.

Da die Datei ein Formular darstellt sollen die bestehenden Formatierungen natürlich dabei nicht verändert werden. Das ganze soll über CGI auf einem Web-Server laufen.

Also i.e. so:

- Datei öffnen
- Schreibe in Zelle C3 "Name"
- Schreibe in Zelle D3 "Vorname"
- Schreibe in Zelle C8 "Straße"
... usw.
- Datei wieder speichern

Momentan arbeite ich mit Spreadsheet::WriteExcel. Aber damit kann man ja keine vorhandenen Dateien öffnen, oder doch?
renee
 2008-02-08 10:40
#105699 #105699
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dafür bräuchtest Du CPAN:Spreadsheet::ParseExcel. Es gibt auch ein Modul, mit dem man lesen und schreiben kann (basiert auf WriteExcel und ParseExcel)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
havi
 2008-02-08 12:46
#105707 #105707
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Nein, brauchst kein Excel spezifisches Modul dafuer, funkt auch so...

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl

use warnings;
use strict;
use Win32::OLE;

my $xlsFile = "c:\\lokale_daten\\test.xls";

my $excel = Win32::OLE->new('Excel.Application','Quit') or die $!;
my $workbook = $excel->Workbooks->Open($xlsFile);
my $sheet = $workbook->Worksheets(1);

$sheet->Range("A1")->{Value} = "B";

$excel->Save();

$excel->Quit();

print "Fertig.\n";

1;
nepos
 2008-02-08 14:24
#105715 #105715
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Nun ja, dafür muss das Skript dann aber zwingend auf einem Windows-System mit installiertem Excel laufen...
MartinR
 2008-02-11 15:57
#105785 #105785
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
renee+2008-02-08 09:40:17--
Dafür bräuchtest Du CPAN:Spreadsheet::ParseExcel. Es gibt auch ein Modul, mit dem man lesen und schreiben kann (basiert auf WriteExcel und ParseExcel)


Danke schön. CPAN:Spreadsheet::ParseExcel::SaveParser war die Lösung.
<< >> 5 Einträge, 1 Seite



View all threads created 2008-02-08 09:33.