PHPExcel:自动下载并打开Excel文件

时间:2013-03-03 18:37:50

标签: php 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已经在运行,这还能工作吗?

感谢您的帮助,

Donato的

4 个答案:

答案 0 :(得分:11)

根据我的上述评论,您只能强制拥有下载选项。为此,您可以这种方式设置标题 -

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');

答案 1 :(得分:2)

PHPExcel无法在客户端上运行MS Excel ....但您可以直接将文件下载到浏览器,这将为客户端提供将其保存到磁盘或直接在MS Excel中打开的选项(如果有的话)安装MS Excel)通过发送适当的http标头,并将文件“保存”到php:// output。

当然,如果客户端没有安装MS Excel,则无法在MS Excel中打开;虽然它仍然会提示保存。

/ Tests或/ Examples目录中的01simple-download-xlsx.php文件正是这样做的

并且“是”,如果MS Excel已在客户端上运行,它将起作用

答案 2 :(得分:1)

在创建Writer之前插入以下标题

$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');

答案 3 :(得分:0)

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