• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHPExcel Datei auf Desktop speichern oder SaveFile Dialog öffnen

_R_A_L_F_

Mitglied
Hallo,

ich habe folgendes Problem mit der Classe PHPExcel V1.8.

Ich benutze eine Excel Vorlage und möchte diese mit Werte füttern und anschließend speichern.

Das Problem ist aber wie schaff ich es die Datei auf dem Desktop zu speichern?

Alternativ dazu könnte ich auch damit leben, dass bei der Erzeugung der Save File Dialog öffnet bloß auch da scheitere ich an der Umsetzung.

Wäre über jede Hilfe dankbar ;)

PHP:
// Excel Erstellung - Anfang
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');

// Excel Klasse einbinden
require_once dirname(__FILE__) . '/Classes/PHPExcel.php';

// Vorlage laden
$fileType = 'Excel2007'; 
$fileName = 'Vorlage.xlsx';
//$objPHPExcel = PHPExcel_IOFactory::load('MR-Bereitschaft.xlsx');
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader->load($fileName);

// Variablen definieren
$test = 'Test';

$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('B5', $test)
            ;
    
// Excel Dokument erstellen
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('C:\Users\ ???? \Datei.xlsx');
 
Werbung:
PHP:
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$xlsName.'"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
 
Werbung:
@B3nnoX Danke für den Tipp

@m.scatello Das habe ich schon versucht, aber dann speichert er den Inhalt der .php Datei als Excel File und beim öffnen kommt entsprechend die Fehlermeldung, dass der Dateityp nicht zusammen passt.
 
Weiß noch jemand eine Lösung?

So funktioniert es schon mal nicht:
PHP:
// Excel Erstellung - Anfang
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
 
// Excel Klasse einbinden
require_once dirname(__FILE__) . '/Classes/PHPExcel.php';
 
// Vorlage laden
$fileType = 'Excel2007';
$fileName = 'Vorlage.xlsx';
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader->load($fileName);
 
// Variablen definieren
$test = 'Test';
 
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('B5', $test)
            ;
 
// Excel Dokument erstellen
$xlsName = 'Dokument';
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$xlsName.'"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
 
Zuletzt bearbeitet:
Passiert denn irgendwas? Hast du eine Fehlermeldung?
Es funktioniert nicht ist immer so eine allgemeine Fehlerbeschreibung :)
 
Werbung:
Es wird eine Datei erstellt und beim öffnen mit Excel erscheint die Meldung (siehe Anhang)
 

Anhänge

  • meldung.JPG
    meldung.JPG
    29,9 KB · Aufrufe: 7
Versuche mal anstelle von

PHP:
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
folgendes
PHP:
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

"Excel2007" ist nämlich für xlsx und "Excel5" ist für xls
 
Werbung:
Also ich hab das ganze jetzt mit
HTML:
window.open('Datei.xlsx');
gelöst und als Tipp Allgemein: Unbedingt die Version 1.8.1 verwenden, da es sonst zu Problemen mit der PHP Version 7 kommt ;)
 
Zurück
Oben