2012-09-06 77 views
0

我正在通過PHP Excel生成Excel文檔。 用戶要求將文件的內容直接輸出到瀏覽器。 我寫以下代碼(通過谷歌研究後):PHP流excel數據到瀏覽器

$writer = PHPExcel_IOFactory::createWriter($xcel, 'Excel5'); 

header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-type: applicaton/vnd.ms-excel"); 
header("Content-type: application/force-download"); 
header("Content-type: application/octet-stream"); 
header("Content-type: application/download");; 
header("Content-Disposition: attachment;filename=File.xlsx"); 
header("Expires: 0"); 
header("Pragma: public"); 
$writer->save('php://output'); 

這導致如下:

ࡱ;

B = %r8X「1 Calibri 8 3ffff ̙̙3f3fff 3f3f33333f33333 iD07_12_ACT_NgW &文件在2012年9月6日創造的 - ? 14時19分28秒 * + & FFFFFF」 ffffff ?( ?) ? 「dXX333333 ?333333 ?U} $ > @gg Root Entry F ß: ß: 工作簿 F

而不是輸出作爲excel表單我得到excel表單的編碼內容。

任何人都可以解決這個問題?

THX

+2

多少內容類型標題? –

+0

「用戶要求將文件的內容直接輸出到瀏覽器。」 - 這不是他們準確得到的嗎?該代碼是輸出到瀏覽器的Excel表格的內容 –

+0

現在,內容被保存到服務器上的文件中,並且它們在文檔的屏幕上接收到鏈接。 – Soldierflup

回答

0
header('Content-Type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment;filename="01simple.xls"'); 
header('Cache-Control: max-age=0'); 

應該足以滿足大多數的瀏覽器(IE在SSL是一個例外):不/Tests/01simple-download-xls.php工作?

你有任何輸出到瀏覽器之前的頭?

+0

標題前沒有任何輸出 – Soldierflup

2

如果要生成一個XLS(Excel5)文件試試這個:

$writer = PHPExcel_IOFactory::createWriter($xcel, 'Excel5');  
    header('Content-Type: application/vnd.ms-excel'); 
    header("Content-Disposition: attachment;filename=File.xls"); 
    header('Cache-Control: max-age=0'); 
    $writer->save('php://output'); 

,如果你想要一個XLSX(2007年Excel或更高)的文件,試試這個:

$writer = PHPExcel_IOFactory::createWriter($xcel, 'Excel2007');  
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
    header("Content-Disposition: attachment;filename=File.xlsx"); 
    header('Cache-Control: max-age=0'); 
    $writer->save('php://output'); 
+0

嘗試了你的建議,但仍然得到相同的結果,瀏覽器仍然輸出如上所述 – Soldierflup

+0

它在Internet Explorer?你檢查@ markBaker的答案,他在哪裏談論ssl? – Periback

+0

我使用了你的Excel5例子,它在'$ xcel-> save(''''with'$ writer-> save('。'謝謝! – Christian