PhpExcel - 无法打开下载的文件

时间:2017-03-25 17:45:02

标签: php phpexcel

[这家伙似乎和我有同样的问题,但它是Java,我什么都不懂:/ excel can not open the downloaded file through jsp] 大家好,

首先,我想说英语不是我的母语,所以你可能会看到一些错误,但我希望你能理解我。 所以我是一名学生,我有一份“学生工作”,为一家小面包店创建了一个网站!他们需要有一个包含所有客户端的文件,我决定使用PhpExcel来生成它!

我做的一切都很正常,但仍然无效!我当然在google上寻求帮助,但没有人和我有同样的错误信息。这就是我得到的。

Error message I get when I try to open the file : In english : "Impossible to open the file "....xlsx" because it's format or extension is not valid. Please verify that the file is not broken and that it's extension match the file format"

源代码在这里:`

if($action=="client-excel"){
    /** Error reporting */
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    date_default_timezone_set('Europe/London');


    /** Include PHPExcel */
    require_once '../libs/phpExcel/PHPExcel.php';


    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();

    // Set document properties
    $objPHPExcel->getProperties()->setCreator("BakeryName")
                                                 ->setLastModifiedBy("Clients")
                                                 ->setTitle("Liste Clients ")
                                                 ->setSubject("Liste Clients ")
                                                 ->setDescription("Liste Clients ")
                                                 ->setKeywords("Liste Clients ")
                                                 ->setCategory("Liste Clients");

                    $toSupp=array();

                        $objPHPExcel->createSheet();
                        $array=array();
                        $array['header'][]="#client";
                        $array['header'][]="Nom";
                        $array['header'][]="Mail";
                        $array['header'][]="Nombre de pain(s) acheté(s)";
                        $array['data']=array();

                        $list = Client::getAllClients($order="id_client",$letter="",$valid=false,$start=0,$limit=100000);                                                           foreach($list as $client){
                            $client_array=array(
                                $client->getId(),
                                $client->getName(),
                                $client->getEmail(),
                                $client->getNbPainsCmd(),

                                );
                            $array['data'][]=$client_array;
                        }
                        if(sizeof($array['data'])==0){
                            $toSupp = $z;
                        }

                        $objPHPExcel->setActiveSheetIndex(0);

                        $j=0;
                        foreach($array['header'] as $h){
                            $objRichText = new PHPExcel_RichText();
                            $objRichText->createTextRun($h)->getFont()->setBold(true);
                             $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow ($j,1,  $objRichText);
                            $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($j)->setAutoSize(true);
                            $j++;
                        }

                        for($i=0;$i<sizeof($array['data']);$i++){
                            for($j=0;$j<sizeof($array['data'][$i]);$j++){
                            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow ($j,$i+2, $array['data'][$i][$j]);
                            }
                        }                       
                        // Rename worksheet
                        $objPHPExcel->getActiveSheet()->setTitle("Liste clients");

                    // Redirect output to a client’s web browser (Excel2007)
                    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
                    header('Content-Disposition: attachment;filename="filename.xlsx"');
                    header('Cache-Control: max-age=0');

                        header('Cache-Control: max-age=1');

                        header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
                    header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
                    header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
                    header ('Pragma: public'); // HTTP/1.0

                    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
                    $objWriter->save('php://output');
                    exit;

                }`

非常感谢你所有的潜在答案!

0 个答案:

没有答案