2016-07-11 6 views
0

Ich habe eine Haupt-PHP-Seite (portal.php), wo der Benutzer einen Datumsbereich auswählt, um einige Daten zu erhalten. Dann führt die Hauptseite eine weitere kleine PHP-Seite (downloadInExcel.php) mit AJAX durch, um eine MYSQL-Abfrage durchzuführen, und speichert die Ergebnisse in einem Excel-Blatt mit PHPExcel. Ich möchte die generierte Excel-Datei im Browser herunterladen. Das funktioniert, wenn ich die kleine php-Seite mit PHPExcel darin lade (downloadInExcel.php). Aber ich möchte die Excel-Seite in der Haupt-PHP-Seite (portal.php) herunterladen. Gibt es eine Möglichkeit, das erzeugte Excel-Sheet in downloadInExcel.php an portal.php zu übergeben?Wie wird eine von PHPExcel generierte Datei von einer PHP-Seite an eine andere PHP-Seite übergeben?

Bitte geben Sie so viel Details wie möglich, um mir zu helfen, den Code zu schreiben.

Vielen Dank!

Hier ist der Teil meines Codes, wo ich die Excel-Tabelle herunterladen:

header('Content-type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment; filename="results.xls"'); 
header("Cache-Control: max-age=0"); 
$objPHPExcel->setActiveSheetIndex(0); 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
ob_get_clean(); 
$objWriter->save("php://output"); 
ob_end_flush(); 
+1

Sie brauchen nicht die Ausgangspufferung. das stopft die .xlsx zuerst in den Speicher und spuckt sie dann wieder aus. Rufen Sie einfach den Aufruf -> save() auf. –

Antwort

0

Sie brauchen nicht die Excel von einer Seite zur anderen zu übergeben, die keinen Sinn machen würde.

Stattdessen können Sie es auf dem Server innerhalb der Seite speichern, die Sie in AJAX aufrufen, und den Speicherort und den Dateinamen zurückgeben, wo Sie sie gespeichert haben. So können Sie es auf Ihrer Hauptseite bearbeiten.

Sie können die Downloadseite auch nicht mit AJAX aufrufen, sondern direkt in einem neuen Tab/Fenster aufrufen.