简体   繁体   中英

PHPExcel with Codeigniter retirning Internal Server 500 Error

I tried following the following tutorial to implement the PHPExcel library to Codeigniter http://www.ahowto.net/php/easily-integrateload-phpexcel-into-codeigniter-framework/

For some reason when I run a test that looks like something like this

reports.php controller localhost/fticketarchive/index.php?/reports/excelTest

<?php
class Reports extends CI_Controller
{
        function excelTest(){
        //load our new PHPExcel library
        $this->load->library('Excel');
        //activate worksheet number 1
        $this->excel->setActiveSheetIndex(0);
        //name the worksheet
        $this->excel->getActiveSheet()->setTitle('test worksheet');
        //set cell A1 content with some text
        $this->excel->getActiveSheet()->setCellValue('A1', 'This is just some text value');
        //change the font size
        $this->excel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20);
        //make the font become bold
        $this->excel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
        //merge cell A1 until D1
        $this->excel->getActiveSheet()->mergeCells('A1:D1');
        //set aligment to center for that merged cell (A1 to D1)
        $this->excel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $filename='just_some_random_name.xls'; //save our workbook as this file name
        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
                     
        //save it to Excel5 format (excel 2003 .XLS file), change this to 'Excel2007' (and adjust the filename extension, also the header mime type)
        //if you want to save it as .XLSX Excel 2007 format
        $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');  
        //force user to download the Excel file without writing it to server's HD
        $objWriter->save('php://output');
    }
}

so for some reason when I reach this at localhost/fticketarchive/index.php?/reports/excelTest

I get the following error in console with no server response. 500 Internal Server Error

Any ideas would be greatly appreciated! Thank you.

Have you tried moving the call to the library into __construct?

class Reports extends CI_Controller
{
    function __construct()
   {
        parent::__construct();
        $this->load->library('excel');
   }

   function exceltest(){
         //proceed
   }

}

For me at least, this works.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM