2010-04-08 69 views
8

雖然谷歌搜索我發現兩組不同需要被設定時輸出高強不同的文件格式生成的報頭。PHPExcel設置特定的標頭文件格式

爲例如

對於類型 「Excel5」標題是:

header("Pragma: public"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Type: application/force-download"); 
header("Content-Type: application/octet-stream"); 
header("Content-Type: application/download");; 
header("Content-Disposition: attachment;filename=$filename"); 
header("Content-Transfer-Encoding: binary "); 

對於類型 「Excel2007的」標題是:

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content-Disposition: attachment;filename="myfile.xlsx"'); 
header('Cache-Control: max-age=0'); 

我的問題:是否有需要設立不同的頁眉每種文件類型爲有其他類型的文件也CSVHTMLPDF

回答

12
header("Pragma: public"); 

否 - 這是錯誤的 - 儘管很多人認爲這是與緩存

header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 

無關,與Excel的 - 這些只是控制緩存

header("Content-Type: application/force-download"); 
header("Content-Type: application/octet-stream"); 
header("Content-Type: application/download");; 

否 - 應該只有是一個內容類型標題。對於使用OLE一個MS Excel文件,mime類型應該是application/vnd.ms-的excel

只有第二報頭以上是有效的MIME類型。

header("Content-Disposition: attachment;filename=$filename"); 
header("Content-Transfer-Encoding: binary "); 

第二個標頭是多餘的,前者指定了下載的文件名。

Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

僅適用於.xlsx文件(即以XML格式保存)。否則,你應該使用application/vnd.ms-excel。事實上,後者應該是向後兼容的。

我的問題:是否有需要設置不同的頁眉爲每個文件類型

是 - Content-Type頭文件類型。但只有這個標題需要改變。

C.

相關問題