2015-06-16 7 views
5

Ich habe ein HTML-Formular, das beim Senden des Formulars durch Klicken auf eine Schaltfläche eine Excel-Datei mit PHPExcel erzeugt. Alles funktioniert gut, aber wenn die Excel-Datei groß ist, ist die Wartezeit ziemlich lang. Ich möchte einen Fortschrittsbalken hinzufügen oder einen Prozentwert anzeigen. Mein Problem ist, dass ich nicht weiß, wie man das in das Formular einfügt und es kontinuierlich aktualisiert.Fortschrittsbalken beim Generieren der Excel-Datei in PHP anzeigen

Dies ist, was ich zu erreichen suchen: enter image description here

EDIT:

Mein Code ist:

HTML-Formular:

<form action="reporteexcel.php" name = "ExportForm" method="POST"> 
<table> 
[All different fields] 
    <tr> 
       <td style = "position:relative; top:1em;left:4em;"> 
        <input type="submit" value="Export to excel"> 
        <input type="button" onclick="window.close();" value = "Cancel"> 
       </td> 
      </tr> 
     </table> 

    </form> 

In reporteexcel.php:

include 'PHPExcel_1.8.0/Classes/PHPExcel.php'; 
    include 'F1_Export.php'; 
    include 'F2_Export.php'; 
if ($Family == "F1") 
    { 
     exportF2 ($BasicInformation, $SupplierInformation, $PhysicalParameters, $Supplier, $Family); 
    } 
    else if ($Family == "F2") 
    { 
     exportF2 ($BasicInformation, $SupplierInformation, $PhysicalParameters, $Supplier, $Family); 
    } 

Und in F1_export und F2_export sind die Funktionen, die die Excel-Dateien generiert.

+0

Wenn Sie eine nicht verwenden möchten existierende Bibliothek - recherchieren Sie etwas in AJAX. Ihr Aufruf zum Exportieren könnte über AJAX abgewickelt werden, was zu Aktualisierungen Ihres aktuellen Bildschirms/Formulars führen könnte. – DragonYen

+0

Ich habe es schon versucht, aber es funktioniert nicht (zumindest wusste ich nicht, wie es funktioniert;)). Ich fügte ein

im HTML hinzu, fügte ich die AJAX-Akte auch hinzu, aber ich kann nicht ständig von meiner php Funktion diesen Wert aktualisieren ... – Mastor

+0

Lesen Sie dieses http://stackoverflow.com/questions/15508784/ progress-bar-update-progress –

Antwort

2

Verwenden Sie diese Bibliothek, um Ihre Datei zu laden, können Sie auch Fortschrittsbalken für Ihre Uploads zeigen: http://blueimp.github.io/jQuery-File-Upload/

Fortschritt für Skripte lang laufende PHP zeigen: http://www.htmlgoodies.com/beyond/php/show-progress-report-for-long-running-php-scripts.html

+0

Hallo! Ich möchte keine Datei hochladen. Ich habe meine Daten in einer Datenbank und damit generiere ich eine Excel-Datei. – Mastor

+0

@ user2528601 Ich habe meine Antwort aktualisiert. –

Verwandte Themen