грешка PHPExcel в Codeigniter

Опитвам се да използвам PHPExcel с CodeIgniter.

но получих грешка

Фатална грешка: Извикване на частен IOFactory::__construct() от контекста „CI_Loader“ в C:\ms4w\Apache\htdocs\plantation\system\core\Loader.php на линия 949

поставих PHPExcel в моите приложения/библиотеки

и това е моят код контролер

function excel()
    {

        $this->load->library('phpexcel');
        $this->load->library('PHPExcel/iofactory');

        $objPHPExcel = new PHPExcel();
        $objPHPExcel->getProperties()->setTitle("title")
        ->setDescription("description");

        // Assign cell values
        $objPHPExcel->setActiveSheetIndex(0);
        $objPHPExcel->getActiveSheet()->setCellValue('A1', 'cell value here');

        // Save it as an excel 2003 file
        $objWriter = IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save("nameoffile.xls");

    }

същото като http://codeigniter.com/wiki/PHPExcel/

моля да разрешите този случай

използвам codeigniter 2.0 и php excel 1.7.7

Благодаря за вниманието

BR

Пуджа


person Puja Sury    schedule 24.06.2012    source източник
comment
Не съм експерт по CI, но трябва ли имената на файловете да включват малки и големи букви или не?   -  person Mark Baker    schedule 24.06.2012
comment
@EswarRajeshPinapala , @MarkBaker най-накрая нишката работи, но когато изтегля excel, шрифтът е странен **þÿÕÍÕœ.“—+,ù®0¼HPXhp** when i put header code and use code $objWriter-›save('php://output');` в моя контролер . Някакви идеи??   -  person Puja Sury    schedule 25.06.2012
comment
Всъщност не трябва да извеждате съдържанието на Excel в браузъра, защото браузърът не може да го прочете. вижте отговора ми за това как да разрешите този проблем. Като алтернатива можете също да направите $objWriter-›save('test.xlsx');.   -  person Eswar Rajesh Pinapala    schedule 25.06.2012


Отговори (1)


Ето как бихте могли да настроите функцията си, това също решава проблема ви с невалидните знаци, включете подходящи заглавки и направете ob_end_clean(); за почистване на изходния буфер. Направете това точно преди да направите save().

 public function howToPhpExcel()
{
    $response = $this->_response;

    $this->_helper->layout->disableLayout();
    $this->_helper->viewRenderer->setNoRender();

    $excel = new PHPExcel();
    $excel->setActiveSheetIndex(0);
    $worksheet = $excel->getActiveSheet();
    $worksheet->getCell('A1')->setValue('tet');
    $worksheet->getCell('B1')->setValue('tet');

    ob_end_clean();

    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="Report.xlsx"');

    $objWriter = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
    ob_end_clean();

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

}
person Eswar Rajesh Pinapala    schedule 25.06.2012
comment
благодаря ти много @EswarRajeshPinapala за твоя отговор. Благодаря, че ми спестихте време. - person Puja Sury; 25.06.2012