Hi,
ich möchte ein "Speichern unter..."-Menü in Zusammenhang mit COM und Excel realisieren, doch leider klappt das irgendwie nicht so ganz. Es geht zwar ein Speichern unter... auf, doch speichert es eine *.xls mit 1kB und nicht wie gewünscht meine erzeugte Datei mit 77kB!!!
Hier mal der Code:
Im Speichern unter... soll die zuvor erzeugte und fest abgespeicherte Auswertung.xls, die ja schon in einem Ordner existiert, lediglich zum Download angeboten werden.
Es geht alles, bis auf den Speichern unter... -Teil. Ich habe den Header schon an alle möglichen Stellen im File gesetzt - geht nicht.
Hat jemand eine Idee???
Danke, Rico.
ich möchte ein "Speichern unter..."-Menü in Zusammenhang mit COM und Excel realisieren, doch leider klappt das irgendwie nicht so ganz. Es geht zwar ein Speichern unter... auf, doch speichert es eine *.xls mit 1kB und nicht wie gewünscht meine erzeugte Datei mit 77kB!!!
Hier mal der Code:
Code:
function export_excel($logs){
//Instantiate the spreadsheet component.
$exapp = new COM("Excel.application") or Die ("Can not connect to Excel.application!!! \n");
//declare files
//VorlagenFile .xlt
$export_file = dPgetConfig ('root_dir') . '/modules/excel/Vorlage.xlt';
//Pseudofile anlegen, mit welchem gearbeitet wird (-->Name über Randomfunktion), um Überschreibung von Vorlage zu vermeiden
srand ((double)microtime()*1000000);
$randvalue = rand();
$copy_file = dPgetConfig('root_dir') . '/modules/excel/' .$randvalue . '.xlt';
//create a copy of export_file
copy($export_file, $copy_file);
//ErgebnisFile --> wird am Schluß gespeichert
$import_file = dPgetConfig('root_dir') . '/modules/excel/Auswertung.xls';
//open existing document
$exapp->Workbooks->Open($copy_file) or Die ("Unable to open Workbook!!! \n");
//Select and Activate the sheet; fill into new file
$sheets = $exapp->Workbooks[1]->Worksheets(1);
$sheets->activate;
//hier befüllen mit Werten aus der DB
//....
//delete import_file when exists
while (file_exists($import_file)){
unlink($import_file);
}
//copy_file save as import_file
$exapp->Workbooks[1]->SaveAs($import_file) or Die ("Unable to save File!!! \n");
//free the object
unset($sheets);
//Workbook close
$exapp->Workbooks[1]->Close();
//closing excel
$exapp->Quit();
//free the object
unset($exapp);
//dieser Teil scheint nicht korrekt zu funktionieren!!!
//Speichern unter... realisieren
$save_dir = dPgetConfig('root_dir') . '/modules/excel/';
$save_file = 'Auswertung.xls';
$file = $save_dir.$save_file;
header("Content-Type: application/vnd.ms-excel");
header("Content-Length: ".filesize($file));
header("Content-Disposition: attachment; filename=".$file);
readfile($file);
}
Es geht alles, bis auf den Speichern unter... -Teil. Ich habe den Header schon an alle möglichen Stellen im File gesetzt - geht nicht.
Hat jemand eine Idee???
Danke, Rico.

Kommentar