zoukankan      html  css  js  c++  java
  • tp5 Excel导入

    /**
         * 导入Excel功能
         */
        public function import(){
            if (!empty($_FILES)) {
                $file = request()->file('import');
                $info = $file->rule('uniqid')->move(ROOT_PATH . 'public' . DS . 'suffix');
    
                if($info){
                    $file_name = './public/suffix/'.$info->getFilename();
                }else{
                    // 上传失败获取错误信息
                    echo $file->getError();
                }
    
                Vendor('PHPExcel.PHPExcel');
                Vendor('PHPExcel.PHPExcel.Worksheet.Drawing');
                Vendor('PHPExcel.PHPExcel.Writer.Excel2007');
                // 读取Excel文件内容
                $PHPReader = new PHPExcel_Reader_Excel2007();
                $PHPExcel = $PHPReader->load($file_name);
                $currentSheet = $PHPExcel->getSheet(0);  //读取excel文件中的第一个工作表
                $allColumn = $currentSheet->getHighestColumn(); //取得最大的列号
                $allRow = $currentSheet->getHighestRow(); //取得一共有多少行
                $arr = array();  //声明数组
                /**从第二行开始输出,因为excel表中第一行为列名*/
                for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
    
                    /**从第A列开始输出*/
                    for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
                        //这部分注释不要,取出的数据不便于我们处理
                        // $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();/**ord()将字符转为十进制数*/
                        //  if($val!=''){
                        // 	 $erp_orders_id[] = $val;
                        // }
                        //数据坐标
                        $address = $currentColumn . $currentRow;
                        //读取到的数据,保存到数组$data中
                        $data[$currentRow][$currentColumn] = $currentSheet->getCell($address)->getValue();
                        /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
                        //echo iconv('utf-8','gb2312', $val)."	";
                    }
                }
                foreach ($data as $k => $v) {
                    $where = ['suffix'=>$v['A']];
                    $num = Db('suffix')->where($where)->value('id');
                    if(!$num){
                        $arr['suffix'] = $v['A'];
                        $arr['companyname'] = $v['B'];
                        $num = Db('suffix')->insert(['suffix'=>$arr['suffix'],'companyname'=>$arr['companyname'],'creat_time'=>date('y-m-d h:i:s')]);
                        if($num < 0){
                            return $this->error('导入数据库失败');
                        }
                    }
                }
    
                return $this->success('导入成功');
    
    
            }
    
    
        }
    

      以上是TP5  导入

    百度搜索下载PHPExcel类库,放到vendor文件夹里面

    /**
    	 * 导入Excel功能
    	 */
    	public function import(){
    		 if (!empty($_FILES)) {
    		 	$con = array(
    		 			'exts' => array('xls','xlsx'),
    		 			'rootPath' => './'.C("UPLOADPATH"),
    		 			'maxSize' => 3145728,
    		 			'savePath' => '',
    		 			'subName' => '',
    		 			'autoSub' => false
    		 		);
    		 	$upload = new ThinkUpload($con);// 实例化上传类
            	// 上传文件
            	$info   =   $upload->upload();
            	if (!$info) {
                    $this->error();
                }
                vendor("excel.PHPExcel");
                $file_name=C("UPLOADPATH").$info['file']['savename'];
    
                // 读取Excel文件内容
                $PHPReader = new PHPExcel_Reader_Excel2007();
                $PHPExcel = $PHPReader->load($file_name);
                $currentSheet = $PHPExcel->getSheet(0);  //读取excel文件中的第一个工作表
       			$allColumn = $currentSheet->getHighestColumn(); //取得最大的列号
       			$allRow = $currentSheet->getHighestRow(); //取得一共有多少行
       			$arr = array();  //声明数组
       			$newuser = D("users");
       			/**从第二行开始输出,因为excel表中第一行为列名*/
       			for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
    
           		/**从第A列开始输出*/
         			for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
        			//这部分注释不要,取出的数据不便于我们处理
        			// $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();/**ord()将字符转为十进制数*/
        				//  if($val!=''){
        				// 	 $erp_orders_id[] = $val;
        			 // }
        				//数据坐标
                 		$address = $currentColumn . $currentRow;
                 		//读取到的数据,保存到数组$data中
                 		$data[$currentRow][$currentColumn] = $currentSheet->getCell($address)->getValue();
    			     	/**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
    			     	//echo iconv('utf-8','gb2312', $val)."	";
       				}
       			}
       			foreach ($data as $k => $v) {
    			    $arr['user_nicename'] = $v['B'];//昵称
    			     $arr['erpid'] = $v['C'];//ERP账号
    			     $arr['company'] = $v['D'];//单位
    			     $arr['caac'] = $v['E'];//证件号
    			     $arr['workage'] = $v['F'];//司龄
    			     $arr['education'] = $v['G'];//学历
    			     $arr['degree'] = $v['H'];//学位
    			     $arr['school'] = $v['I'];//院校
    			     $arr['major'] = $v['J'];//专业
    			     $arr['postname'] = $v['K'];//岗位名称
    			     $arr['certificate'] = $v['L'];//企业资格认证
                     $arr['social'] = $v['M'];//社会资格认证
                     $arr['user_login'] = $v['N'];//账号
    			     $arr['user_pass'] = sp_password($v['O']);//密码
                     $arr['mobile'] = $v['P'];//手机号
    
                     //确认是更新还是新增
                     $where = ['user_login'=>$arr['erpid']];
                     $return = $newuser->where($where)->getField('id');
                     // dump($return);exit;
                     if($return>0){
                        // dump(32132123);exit;
                        $where1 = ['id'=>$return];
                        $num = $newuser->where($where1)->save($arr);
                     }else{
                        $num = $newuser->add($arr);
                     }
    			     if($num < 0){
    			     	return $this->error('导入数据库失败');
    			     }
    			}
    
       			return $this->success('导入成功');
    
    
         	}
    
    
     	}
    

      写的不对  请一定告知我

  • 相关阅读:
    进入全屏 nodejs+express+mysql实现restful风格的增删改查示例
    WebAPI 实现前后端分离
    android 集成支付宝app支付(原生态)-包括android前端与java后台
    Windows 64 位系统下 Python 环境的搭建
    Es6主要特征详解
    js上传图片
    Python socket
    设置windows开机自启某个软件
    oracle导入导出数据
    mysql触发器,答题记录表同步教学跟踪(用户列表)
  • 原文地址:https://www.cnblogs.com/huanghanyi/p/7920858.html
Copyright © 2011-2022 走看看