Speichern unter - geht nicht!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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:
    EDIT:
    Code entfernt by TobiaZ: Nächstes mal benutzt du bitte die edit-funktion. dann macht das auch sinn...

    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.
    Zuletzt geändert von TobiaZ; 09.02.2006, 12:11.

  • #2
    Re: Speichern unter - geht nicht!

    Code umbrechen, und [php]-Tags benutzen bitte.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      OK, hier der umgebrochene Code mit php-Tags:

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

      Kommentar


      • #4
        So, habe viel probiert... soweit, sogut. Filegröße usw. passt jetzt alles, aber dauernd speichert es mir die index.php bzw. das Layout dieser und nicht meine eigentliche Datei, obwohl ich nur meine Datei zum Download anbiete (geschiet mit readfile($file) )!!!

        Außerdem kommt beim öffnen der Datei eine Meldung:
        "Problem beim Laden: Fehlende Datei ...TemporaryInternetFiles\Content.IE5\...\style\default\main.css"!!!

        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: attachment; filename=".$filename.";";        //Name, der beim Download vorgeschlagen wird
           
        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???
        Zuletzt geändert von magic_halli; 09.02.2006, 12:38.

        Kommentar


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


          PHP-Code:
          <a href="<?php dPgetConfig('root_dir') . '/modules/GSM Auswertung Projekt-Zeiterfassung.xls'?>">Downloadfile</a><br>

          ...und siehe da, es bietet mir die index.htm zum download an, obwohl ich einen festen Pfad zum vorhandenen File angebe!!!

          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???

          Kommentar

          Lädt...
          X