2013-03-03 61 views
2

我已成功地創建和保存Excel文件:PHPExcel:自動下載並打開一個Excel文件

// Rename the file 
$fileName = URL . "MODEL/case" . $caseNO . ".xlsx"; 

// Write the file 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType); 
$objWriter->save($fileName); 

我會自動希望現在PHPExcel運行Excel,打開創建的文件和最大化。 這可能嗎?即使Excel已經在運行,這個工作是否會起作用?

感謝你的幫助,

多納託

+0

我認爲這是不可能的。保存你的excel文件後是被動的。而且你的php文件也無法訪問用戶的計算機,並且無法控制。那將是一場災難! – zkanoca 2013-03-03 18:40:54

+0

唯一可以做到的是有一個下載框彈出而不是簡單的保存...爲此,你需要設置標題 – swapnesh 2013-03-03 18:43:28

+0

你好交換,原諒我的沉悶問題。你能解釋一下嗎? – user1956370 2013-03-03 18:48:11

回答

10

按我上面的評論,你只能迫使有一個下載選項。爲此,您可以通過這種方式設置頭 -

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

參考 - PHP Excel Reader

更多的選擇,你也可以檢查小抄 - Cheat Sheet

雖然最好的辦法讀到這裏 - Codeplex

編輯

做這樣的事情 -

$excel = new PHPExcel(); 
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content-Disposition: attachment;filename="your_name.xls"'); 
header('Cache-Control: max-age=0'); 

// Do your stuff here 

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

// This line will force the file to download  
$writer->save('php://output'); 
+0

請原諒我swapesh,你寫的代碼是javascript正確的嗎?當你說它會強制下載你的意思是它會打開文件? – user1956370 2013-03-03 19:18:13

+0

@ user1956370這些是PHP標題..並且不需要原諒kina的話..可以,如果你不知道我知道,但還有很多其他的東西,你一定知道,但我沒有http://php.net/manual /en/function.header.php – swapnesh 2013-03-03 19:21:29

+1

@ user1956370使用此$ objWriter-> save('php:// output'); – swapnesh 2013-03-03 19:23:25

2

PHPExcel不能在客戶端上運行的MS Excel ....但你可以直接將文件下載到瀏覽器,這將提供給客戶將其保存到磁盤的選項或通過發送適當的http頭文件直接在MS Excel中打開它(如果他們已經安裝了MS Excel),並將文件「保存」到php://輸出。

當然,如果客戶端沒有安裝MS Excel,那麼在MS Excel中打開不是一個選項;儘管它仍會提示保存。在/測試或

的01simple下載-xlsx.php文件/目錄的例子不正是這個

和「是」,就如MS Excel中已在客戶端上運行的工作

+0

沒有你在PHPExcel上,Stackoverflow會做什麼? – Steve 2014-06-12 22:47:47

0
header("Location: ".URL . "MODEL/case" . $caseNO . ".xlsx"); 
+0

請不要簡單地發佈代碼。提供一些關於您的代碼的解釋或信息或用法。例如,請參閱[此答案](http://stackoverflow.com/a/16893057/756941)。 – NAZIK 2013-12-23 05:17:40

1

在創建寫入器之前插入以下標題

$filename = "filedetail". date("Y-m-d-H-i-s").".xlsx"; 
header('Content-Type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment;filename="'.$filename.'"'); 
header('Cache-Control: max-age=0'); 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
$objWriter->save('php://output');