如何使用PHP将Excel数据导入MySQL数据库

3
我将使用PHPExcel将XLSX文件导入到相关数据库中。但在运行函数时,我遇到了错误。我的代码如下所示。
控制器:
   <?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

你的文件存放在哪里? 你能提供你的文件夹和文件结构吗? - Sanoob
路径为:application/third_party/Excel5/data.xlsx - bhanu
2个回答

2
根据错误信息和你的评论,看起来你正在使用错误的文件路径。
$objPHPExcel=$objReader->load('data.xls');

在CodeIgniter中,路径是相对于入口脚本的,通常是index.php。
使用相对文件路径到这个位置或者使用绝对路径。

谢谢您的回复。我是初学者。您能建议我将文件保存在哪里吗? - bhanu
将其移动到与CodeIgniter入口脚本相同的文件夹中,或者按照Shanoop所描述的文件路径引用它('./application/third_party/Excel5/data.xlsx')。 - Mitch Satchwell
我又遇到错误了。我需要进行一些配置吗? - bhanu

0

我认为您使用了错误的路径,请更改此处。

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

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

谢谢!但是我收到了一个错误:致命错误:未捕获的异常 'PHPExcel_Reader_Exception'... - bhanu
@bhanu 我不熟悉PHPEXcel,请查看此链接http://phpexcel.codeplex.com/discussions/61890。 - Sanoob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接