php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.02.2006, 10:07  
Gast
 
Beiträge: n/a
Standard [Erledigt] Speichern unter... geht nicht!!!

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:
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);
}
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.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.02.2006, 10:47  
Gast
 
Beiträge: n/a
Standard

Sorry, hab hier nochmals den Code, allerdings mit php-Tags - ist einfach besser lesbar :wink:

PHP-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);

  Mit Zitat antworten
Alt 09.02.2006, 10:47  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

hättest deinen ersten Post auch einfach editieren können ..
__________________
Wie man Fragen richtig stellt
dsmcg ist offline   Mit Zitat antworten
Alt 09.02.2006, 10:53  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von magic_halli
Es geht alles, bis auf den Speichern unter... -Teil.
Wohl eher doch nicht...
Zitat:
Zitat von magic_halli
doch speichert es eine *.xls mit 1kB und nicht wie gewünscht meine erzeugte Datei mit 77kB!!!
  Mit Zitat antworten
Alt 09.02.2006, 12:26  
Gast
 
Beiträge: n/a
Standard

Danke für die Antworten... hat mir ungemein geholfen

Also wisst ihr auch keinen Rat?!
  Mit Zitat antworten
Alt 09.02.2006, 12:52  
XLB
Erfahrener Benutzer
 
Registriert seit: 31.07.2005
Beiträge: 1.126
PHP-Kenntnisse:
Fortgeschritten
XLB
Standard

Hmmm ... - sieht soweit korrekt aus ...

Mal ein paar Schüsse "ins Blaue" : Hast du dir die Größe des Files mittels filesize($file) mal "ausserhalb" des header-Zeugs ausgeben lassen ...? Sind's dann 77kB ?

Welchen Browser verwendest du? Wenn ich mich recht entsinne, gab's bei einigen (älteren) Versionen des IE Probleme mit header("Content-Length: ".XXX);. In wieweit sich das aber auf die "Funktionalität" an sich auswirkt ...?

Vielleicht mal error_reporting(E_ALL) reinbasteln ...? (Obwohl das bei deinem Code wahrschenlich keine weiteren Erkenntnisse bringen wird ...?)
XLB ist offline   Mit Zitat antworten
Alt 09.02.2006, 13:15  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

2 mögl. Ansatzpunkte

überprüfe mal die Auswertung.xls auf dem Server ob diese auch korrekt gefüllt ist

statt
PHP-Code:
    header("Content-Type: application/vnd.ms-excel"); 
    
header("Content-Length: ".filesize($file)); 
    
header("Content-Disposition: attachment; filename=".$file); 
nimm folgenden
PHP-Code:
    header("Content-Type: application/x-msexcel"); 
    
header("Content-Length: ".filesize($file)); 
    
header("Content-Disposition: inline; filename=".$file); 
DiBo33 ist offline   Mit Zitat antworten
Alt 09.02.2006, 13:43  
Gast
 
Beiträge: n/a
Standard

So, habe viel probiert... soweit, sogut. Filegröße, Füllung der Auswertung.xls usw. passt alles, aber dauernd speichert bzw. stellt es mir die index.php
bzw. das Layout dieser dar - und nicht meine eigentliche Datei, obwohl ich nur meine Datei zum Download anbiete (geschiet mit readfile($file) )!!!

PHP-Code:
   $save_dir dPgetConfig('root_dir') . '/modules/excel/';
   
$save_file 'Auswertung.xls';
   
$file $save_dir.$save_file;

   
$len filesize($file);
   
$filename basename($file);    //extrahiert nur den Dateinamen

   
header("Pragma: public");
   
header("Expires: 0");
   
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
   
header("Cache-Control: public"); 
   
header("Content-Description: File Transfer");
   
header("Content-Type: application/vnd.ms-excel");

   
//Force the download
   
header="Content-Disposition: inline; filename=".$filename.";";
   
header("Content-Transfer-Encoding: binary");
   
header("Content-Length: ".$len);
   
readfile($file);    //File, welches zum downloaden angeboten wird 
Wieso um alles in der Welt lädt es die index.php runter bzw. stellt diese dar?

PS::Außerdem kommt beim öffnen der Datei eine Meldung:
"Problem beim Laden: Fehlende Datei ...TemporaryInternetFiles\Content.IE5\...\style\de fault\main.css"!!!
  Mit Zitat antworten
Alt 09.02.2006, 16:55  
Gast
 
Beiträge: n/a
Standard

Ich habe jetzt mal folgendes gemacht:
Dies ganze Headerzeug auskommentiert und einfach mal HTML-Links auf das erstellt File erzeugt!


PHP-Code:
[url="<?php dPgetConfig('root_dir') . '/modules/GSM Auswertung Projekt-Zeiterfassung.xls'?>"]Downloadfile[/url]
...und siehe da, es bietet mir die index.htm zum download an!!!

Meine php-Datei läuft als Include in einer anderen php-Datei und diese wird ihrerseits von der index.php aufgerufen. Kann das vielleicht daran liegen???
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Audio-Recorder / Zugriff auf Mikrofon -> speichern agrajag JavaScript, Ajax und mehr 4 27.07.2008 17:19
MySQL Antwort als CSV speichern grisu PHP Tipps 2008 5 11.04.2008 17:28
Bild Komprimiert speichern Culutio PHP-Fortgeschrittene 15 18.02.2007 18:54
PDF per PHP - Problem bei "Ziel speichern unter..." freq.9 PHP Tipps 2006 7 18.08.2006 16:54
Variable als Textdatei Lokal speichern HSFighter PHP Tipps 2006 3 28.02.2006 12:13
Bild (.jpg) mit Link auf Festplatte speichern PsychoEagle PHP Tipps 2005-2 11 16.06.2005 14:54
Bilder speichern statt anzeigen... PHP Tipps 2005 3 25.04.2005 15:22
XML speichern McWolle PHP-Fortgeschrittene 5 04.04.2005 19:38
Daten von php in Datei wie am besten Speichern ? PHP Tipps 2005 6 09.02.2005 16:48
[Erledigt] Emails speichern Datenbanken 1 08.02.2005 20:06
Mail inkl. all. Elementen speichern Beitragsarchiv 5 29.12.2004 13:21
Werte in Textdatei speichern und auslesen PHP Tipps 2004-2 12 21.12.2004 09:22
Bild speichern das mit der GDLib erstellt wurde. Stefano PHP Tipps 2004 2 22.09.2004 11:53
[Erledigt] BildURL speichern! PHP Tipps 2004 11 18.08.2004 09:18
Formular in Mysql Datenbank speichern Anuschka Datenbanken 1 15.08.2004 02:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
excel speichern unter grau, excel speichern unter funktioniert nicht, speichern unter excel funktioniert nicht, speichern unter dateiname funktioniert nicht, excel datei speichern unter funktioniert nicht, excel speichern unter ausgegraut, speichern header(content-type: application/vnd-ms-excel);, php download pdf speichern unter, warum funktioniert text speichern mit speichern unter nicht, excel speichern unter geht nicht, php readfile excel, php header application/vnd.ms-excel save to file, excel download php funktioniert nicht internet explorer, excel speichern unter reagiert nicht, excel \datei speichern unter\ geht nicht, php speichern in datei funktioniert nicht, ie10 problem ziel speichern unter speichert nicht datei, content-type speichern unter, ie 10 speichern unter ausgegrau, excel option speichern unter ausgegraut

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.