首页 > 解决方案 > PHPExcel 在剩余代码执行停止后下载?

问题描述

我遇到了一个问题,比如在剩余代码未执行后下载 excel 表时。请看下面提到的示例代码。

        $data[]=array('EANCODE'=>6161106690015,'ItemDesc'=>'Electrical hammer mill 15hp'
       ,'UnitDesc'=>'PIECES','qty'=>10);
        $object = new PHPExcel();

        $object->setActiveSheetIndex(0);
        $object->getActiveSheet()->setCellValue('A1', "EANCODE");
        $object->getActiveSheet()->setCellValue('B1', "Item Name");
        $object->getActiveSheet()->setCellValue('C1', 'Units');
        $object->getActiveSheet()->setCellValue('D1', 'Quantity');
        $excel_row = 2;
        foreach($data as $item)
        {

            $object->getActiveSheet()->setCellValue('A'.$excel_row, $item['EANCODE']);
            $object->getActiveSheet()->setCellValue('B'.$excel_row, $item['ItemDesc']);
            $object->getActiveSheet()->setCellValue('C'.$excel_row, $item['UnitDesc']);
            $object->getActiveSheet()->setCellValue('D'.$excel_row, $item['qty']);

            $excel_row++;

        }
        $store_name='Insertion Failed Records - '. date('d-m-Y').".xlsx";
        header('Content-Type: application/vnd.openxmlformats-
        officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="'.$store_name.'');
        header('Cache-Control: max-age=0');

        $objWriter =new PHPExcel_Writer_Excel2007($object, 'Excel2007');
        $objWriter->save('php://output');

        echo "something else";

输出:下载 Excel 表,echo但未显示给定语句。

标签: phpphpexcel-1.8.0

解决方案


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

据我所知,当我们在任何目录中创建和下载或保存文件时,此语句之前的所有回显内容$objWriter->save('php://output'); 写在您的文件中,并且在该语句之后,所有部分都被跳过。


推荐阅读