【问题标题】:error PHPExcel in CodeigniterCodeigniter中的错误PHPExcel
【发布时间】:2012-06-24 18:17:07
【问题描述】:

我正在尝试将 PHPExcel 与 CodeIgniter 一起使用。

但我遇到了错误

致命错误:在第 949 行从 C:\ms4w\Apache\htdocs\plantation\system\core\Loader.php 中的上下文“CI_Loader”调用私有 IOFactory::__construct()

我将 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

法会

【问题讨论】:

  • 我不是 CI 专家,但文件名是否应该区分大小写?
  • @EswarRajeshPinapala ,@MarkBaker 终于找到了它的工作线程,但是当我下载 excel 时,字体很奇怪 **þÿÕÍÕœ。“—+,ù®0¼HPXhp** when i put header code and use code $objWriter->save('php ://output');` 在我的控制器中。有什么想法吗??
  • 其实你不应该把excel的内容输出到浏览器,因为浏览器不能读取。请参阅我的回答,了解如何解决此问题。或者你也可以做 $objWriter->save('test.xlsx');.

标签: php codeigniter export-to-excel phpexcel


【解决方案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);

}

【讨论】:

  • 非常感谢@EswarRajeshPinapala 的回复。谢谢你节省了我的时间。
猜你喜欢
  • 1970-01-01
  • 2018-06-30
  • 1970-01-01
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
  • 2015-11-25
相关资源
最近更新 更多