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