首页 文章

phpexcel下载

提问于
浏览
75

你好,我是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 回答

  • 159

    而不是将其保存到文件,将其保存到php://outputDocs

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

    这将按原样将其发送到浏览器 .

    你想首先添加一些headersDocs,就像文件下载一样,所以浏览器知道该文件的类型以及它应该如何命名(文件名):

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

    先做 Headers ,然后保存 . 对于excel Headers ,请参阅以下问题:Setting mime type for excel document .

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

    使用此电话

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

    要将XLS表输出到您所在的页面,只需确保您所在的页面没有其他回声,打印输出 .

  • 4

    FOR XLSX USE

    从XLSX中设置 $xlsName 名称并带有扩展名 . Example: $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');
    

    FOR XLS USE

    从XLS中设置 $xlsName 名称,带扩展名 . Example: $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');
    
  • 5

    你已经解决了问题,我希望这有助于你 .

    所有下载的文件都以空行开头,在我的情况下有四个空行,这就产生了问题 . 无论您使用 readfile(); 还是 save('php://output'); ,都可以通过在脚本开头添加 ob_start(); 并在 readfile() 之前添加 od_end_clean(); 来解决此问题 . 或 save('php://output'); .

  • 3
    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 M Y H:i:s').' GMT');
    
     header ('Cache-Control: cache, must-revalidate');
    
     header ('Pragma: public');
    
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    
     $objWriter->save('php://output');
    

相关问题