Codeigniter PHPExcel Class' PHPExcel_IOFactory'未找到

时间:2017-09-27 15:43:37

标签: php codeigniter phpexcel

我在这里遵循了这个教程

https://arjunphp.com/how-to-use-phpexcel-with-codeigniter/

在这里

http://www.ahowto.net/php/easily-integrateload-phpexcel-into-codeigniter-framework/

但是,我仍然没有找到PHPExcel_IOFactory错误。我在这个领域找不到多少帮助。有替代excel插件还是有办法解决这个问题?

这是我的控制器构造

public function __construct() {        
        parent::__construct();
        $this->load->library('Excel');
    }

这是我的控制器上传功能

$objReader= PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true); 
$objPHPExcel= PHPExcel_IOFactory::load($document_folder."/".$file_name.".".$file_extension);    
//        $this->response($objPHPExcel);
$objPHPExcel=$objReader->load($document_folder."/".$file_name.".".$file_extension); 
$totalrows=$objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
$objWorksheet=$objPHPExcel->setActiveSheetIndex(0);  
for($i=2;$i<=$totalrows;$i++){ //2 is one row after the header rows
    $title= $objWorksheet->getCellByColumnAndRow(0,$i)->getValue();     
    $first_name= $objWorksheet->getCellByColumnAndRow(1,$i)->getValue();            
    $last_name= $objWorksheet->getCellByColumnAndRow(2,$i)->getValue(); 
    $date_of_birth= $objWorksheet->getCellByColumnAndRow(3,$i)->getValue(); 
    $email=$objWorksheet->getCellByColumnAndRow(4,$i)->getValue();
    $phone_number=$objWorksheet->getCellByColumnAndRow(5,$i)->getValue(); 
    $company=$objWorksheet->getCellByColumnAndRow(6,$i)->getValue(); 
    $input=array(
          'title'=>$title, 
          'first_name'=>$first_name,
          'last_name'=>$last_name,
          'date_of_birth'=>$date_of_birth,
          'email'=>$email,
          'phone_number'=>$phone_number,
          'company'=>$company,
     );

希望我能得到一些帮助

1 个答案:

答案 0 :(得分:0)

你必须记住,PHPExcel只是PHP,CodeIgniter也是如此。您不必通过另一个库加载PHPExcel。事实上,它对你没有任何作用。我将所有PHPExcel文件放在/ third_party /中,然后执行此操作:

require_once( APPPATH . 'third_party/PHPExcel-1.8/Classes/PHPExcel.php');
$objReader = PHPExcel_IOFactory::createReader('Excel2007');

请注意,在示例中我使用的是v1.8

如果要在多个方法中使用$objReader,那么只需将其设为类属性即可。所以$this->objReader代替。