2014-03-06 91 views
3

我正在使用PHPExcel将XLSX文件导入到我的相关数据库。但是,当运行该功能时,我收到错误。我的代码如下所示。如何使用php将数据从excel导入到mysql数据库

控制器:

<?php if (!defined ('BASEPATH')) exit ('No direct access allowed'); 
     class ExcelController extends CI_Controller 
     { 


     public function index() 
     { 
      //load library excel 
      $this->load->library('excel'); 

      //Here i used microsoft excel 2007 
      $objReader= PHPExcel_IOFactory::createReader('Excel2007'); 

      //Set to read only 
      $objReader->setReadDataOnly(true); 


      //Load excel file 
      $objPHPExcel=$objReader->load('data.xls'); // error in this line 
      $objWorksheet=$objPHPExcel->setActiveSheetIndex(0); 

      //load model 

      $this->load->model('user_model'); 

      //loop from first data untill last data 
      for($i=2;$i<=77;$i++) 
      { 
       $name= $objWorksheet->getCellByColumnAndRow(0,$i)->getValue(); 
       $address= $objWorksheet->getCellByColumnAndRow(1,$i)->getValue(); 

       $data_user=array('name'=>$name, 'username'=>$address); 

       $this->user_model->add_data($data_user); 
      } 

     } 


    }   

    ?> 

型号:

<?php 
if (!defined ('BASEPATH')) exit ('No direct access allowed'); 
    class User_model extends CI_Controller 
{ 
    public function __construct() { 
     parent::__construct(); 
    } 

    public function add_data($data_user) 
    { 
     $this->load->database(); 

     $this->db->insert('data',$data_user); 
     return $this->db->insert_id(); 

    } 
} 

?> 

错误在我的代码:

Fatal error: Uncaught exception 'PHPExcel_Reader_Exception' with message 'Could not open data.xls for reading! File does not exist.' in C:\xampp\htdocs\ci_excel\application\third_party\PHPExcel\Reader\Excel2007.php:347 Stack trace: #0 C:\xampp\htdocs\ci_excel\application\controllers\excelcontroller.php(19): PHPExcel_Reader_Excel2007->load('data.xls') #1 [internal function]: ExcelController->index() #2 C:\xampp\htdocs\ci_excel\system\core\CodeIgniter.php(359): call_user_func_array(Array, Array) #3 C:\xampp\htdocs\ci_excel\index.php(202): require_once('C:\xampp\htdocs...') #4 {main} thrown in C:\xampp\htdocs\ci_excel\application\third_party\PHPExcel\Reader\Excel2007.php on line 347 
+0

在哪里存储你的文件? 你能为你提供文件夹和文件结构吗? – Sanoob

+0

路径为:application/third_party/Excel5/data.xlsx – bhanu

回答

2

由错误信息来看,你的评论,它看起来像你正在使用一个错误的文件路径。

$objPHPExcel=$objReader->load('data.xls'); 

在CodeIgniter路径是相对于条目脚本,通常是index.php。

使用到此位置的相对文件路径或绝对路径。

+0

感谢您的回复。我是初学者。你能建议我在哪里保存我的文件? – bhanu

+0

将它移动到与CodeIgniter条目脚本相同的文件夹,或者参考Shanoop描述的文件路径('./application/third_party/Excel5/data.xlsx') –

+0

我再次出现错误。我可以需要一些配置吗? – bhanu

0

我想你用不正确的路径,改变这个

$objPHPExcel=$objReader->load('data.xls'); // error in this line 

$objPHPExcel=$objReader->load('./application/third_party/Excel5/data.xlsx'); 
+0

谢谢!但我收到错误致命错误:未捕获异常“PHPExcel_Reader_Exception”.... – bhanu

+0

@bhanu我不熟悉PHPEXcel 检查此链接http://phpexcel.codeplex.com/discussions/61890 – Sanoob

相关问题