thinkphp的excel的导入导出

  1 public function upload()
  2 {
  3 //设置响应头
  4 header("Contec-Type=text.html;charset=utf-8");
  5 //实例化上传类
  6 $upload=new \Think\Upload();
  7 //设置上传附件大小
  8 $$upload->maxSizae=20480000;
  9 //设置上传附件类型
 10 $upload->exts=array('xls',xlsx);
 11 //设置文件上传目录
 12 $upload->savPath="/";
 13 //上传文件
 14 $info=$upload->uploadOne($_FILES['file']);
 15 $filename='/.Upload'.$info['savepath'].$info['savename'];
 16 $exts=$info['ext'];
 17 if(!$info)
 18 {
 19 //提示上传错误
 20 $this->error($upload->getError);
 21 
 22 }
 23 else{
 24 //上传成功,开始导入
 25 $this->dataImport($finame,$exts);
 26 
 27 }
 28 }
 29 
 30 //这是导入函数
 31 puhblic function dataImport($filename,$exts)
 32 {
 33 
 34  //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
 35         import("Org.Util.PHPExcel");
 36         //创建PHPExcel对象,注意,不能少了\
 37         $PHPExcel=new \PHPExcel();
 38         //如果excel文件后缀名为.xls,导入这个类
 39         if($exts == 'xls'){
 40             import("Org.Util.PHPExcel.Reader.Excel5");
 41             $PHPReader=new \PHPExcel_Reader_Excel5();
 42         }else if($exts == 'xlsx'){
 43            import("Org.Util.PHPExcel.Reader.Excel2007");
 44            $PHPReader=new \PHPExcel_Reader_Excel2007();
 45 
 46     //载入文件
 47         $PHPExcel=$PHPReader->load($filename);
 48         //获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
 49         $currentSheet=$PHPExcel->getSheet(0);
 50         //获取总列数
 51         $allColumn=$currentSheet->getHighestColumn();
 52         //获取总行数
 53         $allRow=$currentSheet->getHighestRow();
 54         //循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
 55         
 56         for($currentRow=3;$currentRow<=$allRow;$currentRow++){
 57             //从哪列开始,A表示第一列
 58             
 59             for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){
 60                 //数据坐标
 61                 $address=$currentColumn.$currentRow;
 62                 //读取到的数据,保存到数组$arr中
 63                $data[$currentRow][$currentColumn]=$currentSheet->getCell($address)->getValue();
 64                 
 65             }
 66         }
 67         $this->save_import($data);
 68 
 69 }
 70 
 71 //导入导数据库中
 72 public function save_import($data)
 73 {
 74 //假设是某个数据库
 75 $database=D('upload');
 76 //用循环
 77 foreach($data as $k=>$v)
 78 {
 79 //封装数据
 80 $info['name']=$v['B'];
 81             $info['age']=$v['C'];
 82             $info['tel']=$v['E'];
 83             $info['addr']=$v['F'];
 84             $info['career']=$v['G'];
 85             if($v['B']!=""&&$v['C']!=""&&$v['E']!=""&&$v['F']!=""&&$v['G']!="")
 86             {
 87             $result=$d->where(array('tel'=>$v['E']))->find();
 88             
 89             if($result){
 90               $res=$d->where(array('tel'=>$v['E']))->save($info);
 91             }else{
 92                 $res=$d->add($info);
 93             }
 94 
 95 
 96 }
 97 
 98 
 99 
100 }

猜你喜欢

转载自www.cnblogs.com/zjl10101314/p/9464043.html