2012-06-24 11 views
5

私はCodeIgniterでPHPExcelを使用しようとしています。エラーCodeExiterのPHPExcel

が、私はエラーを得た

致命的なエラーは:Cに() 'CI_Loader' 文脈から:: __構文プライベートIOFactoryに呼び出し:\ MS4W \ Apacheの\ htdocsに\プランテーション\システム\コア\ 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を使用してこのケースを解決するために喜ばとしてeはここにあるあなたの注意

BR

プジャ

+0

私はCIエキスパートではありませんが、大文字と小文字を区別する必要がありますか? –

+0

@EswarRajeshPinapala、@MarkBaker最後にスレッドが動作しますが、フォントをダウンロードするときにフォントが変わってしまいます。 " - +、ù®0HPX'hp**ヘッダコードを入れて' $ objWriter-> save ( 'php:// output'); 'を使用してください。何か案は?? –

+0

実際には、ブラウザにExcelの内容を出力しないでください。ブラウザはそれを読むことができません。私の答えを見てください。あるいは、$ objWriter-> save( 'test.xlsx');を実行することもできます。 –

答えて

10

用1.7.7

感謝をエクセルどのようにあなたの関数を設定することができますこれはまた、あなたの無効な文字の問題を解決し、適切なヘッダーを含め、ob_en d_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); 

} 
+0

ご返信ありがとうございます@EswarRajeshPinapala。時間を節約してくれてありがとう。 –

+0

あなたは大歓迎です! –