ThinkPHP实现excel的批量导入功能

jerry thinkphp 2015年11月18日 收藏
从网上找了半天excel的批量导入都没成功,在折腾了一上午之后终于做出来啦,现在贡献给大家,上代码
需要引入excel类,自己去下载,http://phpexcel.codeplex.com/releases/view/26478, 将Classes文件夹放入ThinkPHP\Extend\Vendor\位置。
public function uploadFile(){
        $filetmpname = APP_PATH.'public/Uploads/624.xls';
        Vendor('Classes.PHPExcel');
        $objPHPExcel = PHPExcel_IOFactory::load($filetmpname);
        $arrExcel = $objPHPExcel->getSheet(0)->toArray();
        //删除不要的表头部分,我的有三行不要的,删除三次
        array_shift($arrExcel);
        array_shift($arrExcel);
        array_shift($arrExcel);//现在可以打印下$arrExcel,就是你想要的数组啦
        
        //查询数据库的字段
        $m = M('swt');
        $fieldarr = $m->query("describe kefu_swt");
        foreach($fieldarr as $v){
            $field[] = $v['Field'];
        }
        array_shift($field);//删除自动增长的ID        
        //循环给数据字段赋值
        foreach($arrExcel as $v){
            $fields[] = array_combine($field,$v);//将excel的一行数据赋值给表的字段
        }        
        //批量插入        
        if(!$ids = $m->addAll($fields)){
            $this->error("没有添加数据");
        }
        $this->success('添加成功');
    }