Thinkphp PHPExcel批量导入数据到数据库

1.首先把PHPExcel 文件夹复制到thinkphp/library/vendor目录下,

1.1 excel 文件数据格式如下:

  
ID 姓名 密码 年龄 地址
1 xhz1 123 20 浙江省杭州市余杭区
2 xhz2 123 20 浙江省杭州市余杭区
3 xhz3 123 20 浙江省杭州市余杭区
4 xhz4 123 20 浙江省杭州市余杭区
5 xhz5 123 20 浙江省杭州市余杭区
6 xhz6 123 20 浙江省杭州市余杭区
7 xhz7 123 20 浙江省杭州市余杭区
8 xhz8 123 20 浙江省杭州市余杭区
9 xhz9 123 20 浙江省杭州市余杭区
10 xhz10 123 20 浙江省杭州市余杭区

1.2控制器的插入数据库的方法如下:

function insertToDb(){
        if (!empty($_FILES)) {
            $upload = new \Think\Upload();// 实例化上传类
            $filepath='./Upload/Excle/';
            $upload->exts = array('xlsx','xls');   // 设置附件上传类型
            $upload->rootPath  = $filepath;     // 设置附件上传根目录
            $upload->autoSub   =  false;        //自动使用子目录保存上传文件

            if (!$info=$upload->upload()) {
                $this->error($upload->getError());
            }
            foreach ($info as $k => $v) {
                unset($info);
                $info[0]=$v;
                $info[0]['savepath']=$filepath;
            }

            vendor("PHPExcel.PHPExcel");
            vendor("PHPExcel.PHPExcel.IOFactory");

            $file_name=$info[0]['savepath'].$info[0]['savename'];
            $extension = strtolower( pathinfo($file_name, PATHINFO_EXTENSION) );
            if ($extension == 'xlsx') {
                $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
                $objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
            } else if ($extension == 'xls'){
                $objReader =\PHPExcel_IOFactory::createReader('Excel5');
                $objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
            }
            $sheet = $objPHPExcel->getSheet(0);
            $highestRow = $sheet->getHighestRow(); // 取得总行数
//            $highestColumn = $sheet->getHighestColumn(); // 取得总列数
            $j=0;
            for($i=2;$i<=$highestRow;$i++){
                $data['username']= $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
                $data['password']= $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
                $data['age']= $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();
                $data['address']= $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue();
                if(D('admin')->where("id='".$data['id']."'")->find()){
                    $this->error("有相同的ID");
                }else{
                    M('admin')->add($data);
                    $j++;
                }
            }
            $this->success('导入成功!本次导入数量:'.$j);
        }else{
            $this->display();
        }
    }

1.3 数据库数据如下:

271 xhz1 123 20 浙江省杭州市余杭区
272 xhz2 123 20 浙江省杭州市余杭区
273 xhz3 123 20 浙江省杭州市余杭区
274 xhz4 123 20 浙江省杭州市余杭区
275 xhz5 123 20 浙江省杭州市余杭区
276 xhz6 123 20 浙江省杭州市余杭区
277 xhz7 123 20 浙江省杭州市余杭区
278 xhz8 123 20 浙江省杭州市余杭区
279 xhz9 123 20 浙江省杭州市余杭区
280 xhz10 123 20 浙江省杭州市余杭区


2. 这样就可以导入到数据库了。

你可能感兴趣的:(PHP,Mysql)