ThinkPHP实现excel的批量导入功能

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