PHPExcel Datei auf Desktop speichern oder SaveFile Dialog öffnen

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

_R_A_L_F_

Mitglied
16 Februar 2014
172
4
18
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');
 

m.scatello

Senior HTML'ler
15 Februar 2017
1.414
176
63
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');
 

_R_A_L_F_

Mitglied
16 Februar 2014
172
4
18
@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.
 

_R_A_L_F_

Mitglied
16 Februar 2014
172
4
18
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:

B3nnoX

Aktives Mitglied
9 Januar 2013
533
106
43
Passiert denn irgendwas? Hast du eine Fehlermeldung?
Es funktioniert nicht ist immer so eine allgemeine Fehlerbeschreibung :)
 

_R_A_L_F_

Mitglied
16 Februar 2014
172
4
18
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

B3nnoX

Aktives Mitglied
9 Januar 2013
533
106
43
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
 

_R_A_L_F_

Mitglied
16 Februar 2014
172
4
18
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 ;)
 
Werbung: