phpexcel下载

你好我是新来的phpexcel,我想知道是否有某种方式发送我创build的客户端下载的Excel,而不保存在我的服务器上,或者在他下载后立即删除

我正在试图在页面上创build一个“导出button”,这将给用户一个“popup”,他想要我刚创build的excel。

现在我创build表后,我做:

$objXLS->getActiveSheet()->getColumnDimension("A")->setAutoSize(true); $objXLS->getActiveSheet()->getColumnDimension("B")->setAutoSize(true); $objXLS->getActiveSheet()->setTitle('Test Stats'); $objXLS->setActiveSheetIndex(0); $objWriter = PHPExcel_IOFactory::createWriter($objXLS, 'Excel5'); $objWriter->save(__DIR__."/test1.xls"); 

但保存到我的服务器

谢谢

将它保存到文件中,而不是保存到php://output Docs

 $objWriter->save('php://output'); 

这将把它发送到浏览器。

你首先要添加一些头文件 ,比如文件下载很常见,所以浏览器知道该文件是哪种types,以及如何命名(文件名):

 // We'll be outputting an excel file header('Content-type: application/vnd.ms-excel'); // It will be called file.xls header('Content-Disposition: attachment; filename="file.xls"'); // Write file to the browser $objWriter->save('php://output'); 

首先做标题,然后保存。 对于excel头文件,请参见以下问题: 为Excel文档设置MIMEtypes 。

 $excel = new PHPExcel(); header('Content-Type: application/vnd.ms-excel'); 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'); 

使用这个电话

 $objWriter->save('php://output'); 

要将XLS表格输出到您所在的页面,请确保您所在的页面没有其他回显,打印输出。

对于XLSX使用

从扩展名为XLSX SET IN $ xlsName名称。 例如:$ xlsName ='teste.xlsx';

 $objPHPExcel = new PHPExcel(); $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'); 

对于XLS使用

从扩展名为XLS设置$ xlsName名称。 例如:$ xlsName ='teste.xls';

 $objPHPExcel = new PHPExcel(); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'.$xlsName.'"'); header('Cache-Control: max-age=0'); $objWriter->save('php://output'); 

posible你已经解决了你的问题,任何方式,我希望这可以帮助你。

所有下载的文件都是以空行开始的,在我这种情况下有四行空行,这就造成了一个问题。 无论你是否使用readfile();save('php://output'); 这可以通过添加ob_start();来修复ob_start(); 在脚本的开头和od_end_clean();readfile()之前; 或save('php://output');

  header('Content-type: application/vnd.ms-excel'); header('Content-Disposition: attachment; filename="file.xlsx"'); header('Cache-Control: max-age=0'); header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header ('Last-Modified: '.gmdate('D, d MYH:i:s').' GMT'); header ('Cache-Control: cache, must-revalidate'); header ('Pragma: public'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output');