簡體   English   中英

PHPExcel沒有生成正確的xls文件

[英]PHPExcel is not generating correct xls file

我在我的項目中使用PHPExcel來生成來自數據庫的xls數據文件。 我已經下載了PHPExcel庫並在我的PHP類中使用它,如下所示:

Class name : A.class.php
Path : inside a folder named "inc";
PHPExcel Lib folder : inside "inc" and relative to A.class.php


class A{

        // code stuff

        public function phpexcelgenerate()
        {
        require_once 'PHPExcel_1.7.9_doc/Classes/PHPExcel.php';
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="sam.xlsx"');
        header('Cache-Control: max-age=0');              
        $objPHPExcel = new PHPExcel;
        $objPHPExcel->setActiveSheetIndex(0);
        $objPHPExcel->getActiveSheet()->SetCellValue('A1', "12");

        $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
        // This line will force the file to download    
        $writer->save();
        }
        // code stuff
        }

此代碼生成xls文件,但該文件完全為空。 我想我在PHP類中以錯誤的方式包含了PHPExcel的文件。 任何人都可以告訴我我做錯了什么或一個例子我該如何做同樣的事情?

您需要將文件名傳遞給save()方法。 然后讀取該文件的內容並回顯到瀏覽器。

$writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
$writer->save("excel.xls");
readfile("excel.xls");

首先,您需要閱讀該文件:

    // Read the file
    $objReader = PHPExcel_IOFactory::createReader(Excel5);
    $objPHPExcel = $objReader->load($fileName);

現在從db獲取數據:

    //get data
    $details = $this->main_model->get_details()->row();

然后將數據分配給正確的單元格:

    $objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $i);
    $objPHPExcel->getActiveSheet()->setCellValue('B'.$row, $rec->eType);

最后寫下新文件:

    header('Content-Type: application/vnd.ms-excel'); //mime type
    header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name
    header('Cache-Control: max-age=0'); //no cache

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
    //force user to download the Excel file without writing it to server's HD
    $objWriter->save('php://output');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM