你好,我是phpexcel的新手,我想知道是否有某种方式将我创建的excel发送到客户端下载而不保存在我的服务器上或者在下载后立即将其删除
我正在尝试在页面上创建一个“导出按钮”,该页面将为用户提供他想要我刚刚创建的excel的“弹出窗口” .
现在我创建表后,我做:
$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");
但是它将它保存到我的服务器上
谢谢
6 回答
而不是将其保存到文件,将其保存到php://outputDocs:
这将按原样将其发送到浏览器 .
你想首先添加一些headersDocs,就像文件下载一样,所以浏览器知道该文件的类型以及它应该如何命名(文件名):
先做 Headers ,然后保存 . 对于excel Headers ,请参阅以下问题:Setting mime type for excel document .
使用此电话
要将XLS表输出到您所在的页面,只需确保您所在的页面没有其他回声,打印输出 .
FOR XLSX USE
从XLSX中设置 $xlsName 名称并带有扩展名 . Example: $xlsName = 'teste.xlsx';
FOR XLS USE
从XLS中设置 $xlsName 名称,带扩展名 . Example: $xlsName = 'teste.xls';
你已经解决了问题,我希望这有助于你 .
所有下载的文件都以空行开头,在我的情况下有四个空行,这就产生了问题 . 无论您使用
readfile();
还是save('php://output');
,都可以通过在脚本开头添加ob_start();
并在readfile()
之前添加od_end_clean();
来解决此问题 . 或save('php://output');
.