Daten in eine .xls-Datei schreiben
Daten in eine .xls-Datei schreiben
Hallo,
ich lasse mit in einem einfachen Script Daten aus einer db auslesen und auswerten und anschließend in eine .xls-Datei einfügen, die dann per Mail verschickt wird.
Das ganze funktioniert auch ganz gut. Nur wenn man die .xls-Datei unter Windows mit Excel öffnet, habe ich nur die ausgegeben Werte in 4 Spalten aufgeteilt.
Gibt es eine Möglichkeit, diesen Spalten eine Überschrift zu verpassen?
ich lasse mit in einem einfachen Script Daten aus einer db auslesen und auswerten und anschließend in eine .xls-Datei einfügen, die dann per Mail verschickt wird.
Das ganze funktioniert auch ganz gut. Nur wenn man die .xls-Datei unter Windows mit Excel öffnet, habe ich nur die ausgegeben Werte in 4 Spalten aufgeteilt.
Gibt es eine Möglichkeit, diesen Spalten eine Überschrift zu verpassen?
Oh, yeah!
Eine .xls-Datei ist ja nur ein Format, das man unter Windows mit Excel öffnen kann.
Es geht bei mir um eine Statistik. Die bestimmten Daten dafür hole ich mir aus einer db und lasse sie dann per cronjob täglich als email versenden.
Hätte nur noch gerne für die einzelnen Spalten in Excel eine Überschrift, welche ich vorher schon definieren kann.
Es geht bei mir um eine Statistik. Die bestimmten Daten dafür hole ich mir aus einer db und lasse sie dann per cronjob täglich als email versenden.
Hätte nur noch gerne für die einzelnen Spalten in Excel eine Überschrift, welche ich vorher schon definieren kann.
Oh, yeah!
xsl Dateien sind zwar Binary, können aber z.B. über Perl (Spreadsheet::WriteExcel) gelesen und geschrieben werden.Six hat geschrieben:Das geht? Ich dacjte immer, .xls wären Binary!
Das wissen wir leider noch immer nicht, daher werden wir ihm auch nicht helfen können, oder ?Six hat geschrieben: Wie genau gehst du vor?
@Duff
Gruß
gms
Habe das Script jetzt leider nicht vorliegen, da ich das ganze auf der Arbeit anwende.
Schreibe aber alles ganz normal in die Datei.
Es werden auf jeden Fall die ganzen Daten einfach in die .xls-Datei geleitet und diese wird dann über mailx an die entsprechenden Empfänger gesendet. Die .xls-Datei kann man dann unter Windows mit Excel öffnen.
Schreibe aber alles ganz normal in die Datei.
So funktioniert das ganze sinngemäß.FILE=/home/user/beipiel.xls
DAT=/home/user/beispiel.txt
RESULT=`sqlplus ..> $DAT << +end+...`
....
echo $DAT > $FILE
Es werden auf jeden Fall die ganzen Daten einfach in die .xls-Datei geleitet und diese wird dann über mailx an die entsprechenden Empfänger gesendet. Die .xls-Datei kann man dann unter Windows mit Excel öffnen.
Oh, yeah!
auf diese Weise kannst du nicht wirklich eine xls Datei erzeugen. Wahrscheinlich wird diese Datei von Excel dann als CSV Datei eingelesen und kann von Excel dann natürlich auch als xls Datei wieder gespeichert werden.
Sind die Spaltenüberschriften in der $DAT Datei vorhanden ? Bei sqlplus geht das über "SET HEADING ON" so weit ich das noch im Kopf habe, nachdem das aber die default Einstellung ist, müßtest du das schon explicit abgestellt haben.
Gruß
gms
Sind die Spaltenüberschriften in der $DAT Datei vorhanden ? Bei sqlplus geht das über "SET HEADING ON" so weit ich das noch im Kopf habe, nachdem das aber die default Einstellung ist, müßtest du das schon explicit abgestellt haben.
Gruß
gms
Nee, in der $DAT sind die Überschriften nicht enthalten.
Bei sqlplus habe ich die Einstellungen so vorgenommen, dass der Head nicht angezeigt wird. Das wäre natürlich eine möglichkeit. Hatte ich noch gar nicht drüber nachgedacht.
Aber sonst gibt es keine Möglichkeit, die "excel"-Datei schon vorher zu bearbeiten?
Bei sqlplus habe ich die Einstellungen so vorgenommen, dass der Head nicht angezeigt wird. Das wäre natürlich eine möglichkeit. Hatte ich noch gar nicht drüber nachgedacht.
Aber sonst gibt es keine Möglichkeit, die "excel"-Datei schon vorher zu bearbeiten?
Oh, yeah!
Das Script könnte ja bleiben wie es ist, statt dem Befehl:
machst du jedoch soetwas:
Hier habe ich dir ein Beispielprogramm herausgesucht:
http://homepage.eircom.net/~jmcnamara/p ... Excel.html
Code: Alles auswählen
cat $DAT > $FILE # "echo" durch "cat" ersetzt
Code: Alles auswählen
perl myexcelwriter.pl $DAT $FILE
http://homepage.eircom.net/~jmcnamara/p ... Excel.html
Danke. Werde es mir gleich mal anschauen.
Was ich aber noch nicht ganz verstanden habe ist, dass hier
Bringe ich diese zeile in mein ksh-Script ein und verweise mit myexcelwriter.pl auf ein Perl-Script zum Formatieren der Excel-Datei (wie in deinem Link beschrieben)?
Was ich aber noch nicht ganz verstanden habe ist, dass hier
Code: Alles auswählen
perl myexcelwriter.pl $DAT $FILE
Oh, yeah!
Ja, myexclwriter.pl war jetzt ein von mir gewählter Name, für ein von dir zu schreibendes Perlscript.Duff hat geschrieben:Was ich aber noch nicht ganz verstanden habe ist, dass hierBringe ich diese zeile in mein ksh-Script ein und verweise mit myexcelwriter.pl auf ein Perl-Script zum Formatieren der Excel-Datei (wie in deinem Link beschrieben)?Code: Alles auswählen
perl myexcelwriter.pl $DAT $FILE
Der von mir gepostete Link zeigt, wie du ein einfaches excel-Sheet erstellen kannst. (auch mit Formatierungsangaben)
Du brauchst aber noch eine zusätzliche Funktionalität die "$DAT" einzulesen und deren Daten dann in dieses $FILE zu schreiben. Daher habe ich diese als Argumente auch mit übergeben.
Wenn du dir dieses Beispiel auch noch anschaust:
http://www.linux-magazin.de/Artikel/aus ... /perl.html
dort müßtest du dann
Code: Alles auswählen
my $IN = "cd.dat"; # Eingabedatei
my $OUT = "cd.xls"; # Ausgabe-(Excel)-Datei
Code: Alles auswählen
my $IN = $ARGV[0]; # Eingabedatei
my $OUT = $ARGV[0]; # Ausgabe-(Excel)-Datei
Gruß
gms