Jörg Peschke: datei aus datenbank erstellen

Beitrag lesen

Tach,

wenn der report fertig ist, sollte die "datei" sofort zum download angezeigt werden.

Ich würde dasselbe Skript, welches Du laufen lässt, um dein Excel-Sheet zu erzeugen, benutzen, um das Excel-Sheet "on the fly" zu bauen.
Du müsstest lediglich die erzeugte Excel-Datei nicht in eine Datei, sondern direkt in den Browser ausgeben. Also wenn Du die Daten für das Excel-Sheet dann in einer Variable namens "$excel_data" hast,
einfach ein "echo $excel_data".

Allerdings müsstest Du den HTTP-Response-Header selbständig ausgeben: Normalerweise wird als "Content-type" im Header der Mime-Type "text/html" benutzt, du bräuchtest aber "application/msexcel".
Ich hab sowas mal in PERL für ein GIF-Image statt eines Excel-Sheets gemacht, da sieht das so aus:

print "Content-type: image/gif\n\n";
open IMAGE, "./img/$image";
binmode IMAGE;
print <IMAGE>;
close (IMAGE);

Wie man dass in PHP genau macht, dass kein Header ausgegeben wird, weiss ich nicht genau, aber denke, es muesste reichen, wenn einfach vor dem PHP-Teil, in dem du die Excel-Daten erzeugst & ausgibst, kein HTML-Teil vorkommt.

Hoffe, das hilft dir weiter.
Viele Grüße,
Jörg