ошибка PHPExcel в Codeigniter

Я пытаюсь использовать PHPExcel с CodeIgniter.

но я получил ошибку

Fatal error: Call to private IOFactory::__construct() from context 'CI_Loader' in C:\ms4w\Apache\htdocs\plantation\system\core\Loader.php on line 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

Пуджа

 Eswar Rajesh Pinapala25 июн. 2012 г., 05:51
На самом деле, вы не должны выводить содержимое Excel в браузер, потому что браузер не может его прочитать. см. мой ответ о том, как решить эту проблему. В качестве альтернативы вы также можете сделать $ objWriter-> gt; save ('a test; xlsx & apos;) ;.
 Mark Baker24 июн. 2012 г., 21:53
Я не эксперт по КИ, но следует ли включать имена файлов с учетом регистра или нет?
 Puja Sury25 июн. 2012 г., 05:38
@EswarRajeshPinapala, @MarkBaker наконец-то работает, но когда я загружаю Excel, шрифт становится странным ** & # xFE; & # xFF; & # xD5; & # xCD; & # xD5; & # x153; & # x153;. # # X201C ; & # x2014; + & # xF9; & # XAE; 0 & # XBC; НРХhp** when i put header code and use code $ objWriter- & gt; save ('php: // output & apos;); `в моем контроллере. Есть идеи??

Ответы на вопрос(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);

}
 25 июн. 2012 г., 07:00
Добро пожаловать!
 Puja Sury25 июн. 2012 г., 06:38
Большое спасибо @EswarRajeshPinapala за ваш ответ. Спасибо, вы экономите мое время.

Ваш ответ на вопрос