kgfmb
Goto Top

PHP Excel Datei erstellen und Speichern unter anbieten

Daten aus Datenbank in Excel exportieren und User die Möglichkeit zum "Speichern unter..." geben

Hallo zusammen,

mein neuestes anliegen, womit ich mal wieder zu Kämpfen hab ist folgendes:

Ich möchte einem User die Möglichkeit geben, per PHP Daten aus einer Datenbank (MSSQL) in eine Exceldatei zu exportieren.

Der Teil Daten aus Datenbank und in Excel packen funktioniert schon.
Nun möchte ich aber, dass der User den Speicherpfad für die erstellte Exceldatei frei wählen kann ermöglichen.
Da die Exceldatei z. Z. auf dem Webserver gespeichert wird, worauf der User ja keine Berechtigung haben soll und hat.

Ich stelle mir das so vor, ähnlich wie ich beim Import schon gemacht habe, eine Eingabe\Pfadauswahl bieten, in welchen die Datei letztenendlich gespeichert werden soll. Dabei sollte er auch die Möglichkeit haben auf ein Netzlaufwerk zugreifen zu können.

Gibt es irgendwelchen Beispielcode für ein solches Vorhaben?

Gruß

KgFmB

Content-ID: 56246

Url: https://administrator.de/contentid/56246

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

KgFmB
KgFmB 11.04.2007 um 12:02:21 Uhr
Goto Top
Hallo,

ist das geschilderte Vorhaben noch bei keinem vorgekommen?

Ich seh so häufig im Internet, dass ich eine Datei, auf meinem ausgewählten Speicherort Downloaden kann, was im Prinzip das ist was ich versuche zu erstellen.
Nur leider finde ich keine Codeschnippsel um dieses zu realisieren.


Gruß

KgFmB
4515
4515 11.04.2007 um 14:52:45 Uhr
Goto Top
Hallo KgFmB!

Du hast also ein PHP-Skript auf einen Webserver (?) laufen, der auf eine MSSQL-Datenbank zugreift und Inhalt davon in eine Excel-Datei speichert (Speicherst Du die Daten in eine CSV-Datei?). Das Ergebnis speicherst Du dann auf dem Webserver ab.

Warum schickst Du dem User nicht die Daten sofort, ohne sie am Server zu speichern?

header('Content-Type: text/x-csv');  

echo $daten;

außerdem gibt es noch die folgende Möglichkeit

PHP - Datei erstellen und zum Download anbieten

Mit PHP .pdf-Dateien zum Download anbieten

lg Levis
KgFmB
KgFmB 12.04.2007 um 14:09:56 Uhr
Goto Top
Hallo levis24,

danke für deine Antwort, scheint so, als hätte dein Hinweis mich doch noch zum Ziel geführt.

Jedoch hab ich es mit

<?PHP

header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$f_name\"");
$filesize = filesize($f_name);
header("Content-Length: $filesize");
readfile ("$file");
?>

lösen können.

Ausserdem kämpfte ich mit der Möglichkeit, nachdem ich die Datei gespeichert hatte, auf eine bestimmte Seite wieder zu gelangen.

Du musst dir folgendes Vorstellen:
Ich hab eine Web-Application mit Menübuttons oben, die auf allen Seiten der Web-Application hinterlegt sind.
Von diesen Buttons aus, erreiche ich verschiedene Seiten.
Z.B. Übersicht, Parameter, Excel Ex-\Import etc.

Meine Sache war nun noch mittels Export Daten aus der MSSQL DB in ein Excel-Datei zu exportieren, die dann der User weiterverarbeiten und anschliessend wieder Importieren kann.

Nachdem das mit dem Export und Speichern klappte, hatte ich das Problem, wie linke ich nach Abschluss wieder zurück auf die Seite mit der Gesamtübersicht?

Hab mir dann eine Vorlaufmaske erstellt, die die Menübuttons hat und die beim Aufruf automatisch eine weitere PHP-Seite aufruft, die mir den Export selbstständig macht.
Somit blieb meine Vorlaufmaske für den User sichtbar und der Zugriff über die Menüsteuerung erhalten.
Da ich in die PHP-Seite mit dem Quelltext zum Download der erstellten Exceldatei, keinen HTML-Code mehr einfügen durfte. ("Header schon gesendet" etc.)

Aber mit der Methode einer Vorlaufmaske.... FUNKTIONIERTS, ich bin begeistert.

Mein ehemaliker Praktikant hat 3,5 Wochen daran gesessen und es nicht optimal hinbekommen (trotz 8 Jahre Informatikerstudium) *grübbel*
Und ich sitz nun seit 3 Tagen dran und es läuft...... face-smile

Gruß
KgFmB