//上传文件 public function uploadFile(){ $upload = new \Think\Upload(); $savename = date(\'Y-m-d\').\'-\'.time();//使用date(\'Y-m-d H:i:s\')作为文件名,因含有冒号,文件就无法保存了,文件名不可含有冒号: $upload ->exts = array(\'xls\',\'xlsx\'); $upload ->rootPath = \'Public/sxwx/policytracking/\'; $upload ->autoSub = false;//是否开启子目录进行保存,默认开启 $upload ->saveName = $savename; $info = $upload ->upload(); if (!$info) { $this->backMsg(\'0\',\'文件格式有误\'); } //导入成功 vendor("PHPExcel.PHPExcel"); $excel = new \PHPExcel(); vendor("PHPExcel.Classes.PHPExcel.Reader.Excel5"); vendor("PHPExcel.Classes.PHPExcel.Reader.Excel2007"); $file = \'Public/sxwx/policytracking/\'.$info[\'excel\'][\'savename\']; $phpReader = new \PHPExcel_Reader_Excel5();//xls格式的表格 $ext = $info[\'excel\'][\'ext\'];//获取文件的后缀名,传过来的字段名为excel if ($ext==\'xlsx\') { $phpReader = new \PHPExcel_Reader_Excel2007();//xlsx格式的表格 } $objPHPExcel = $phpReader ->load($file);//读取文件内容 /*表格格式 投保单号 保单状态 状态原因 回复处理方式 新契约下发时间 处理完成时间 业务员姓名 */ $sheet = $objPHPExcel->getSheet(0); // 取得总行数 $highestRow = $sheet->getHighestRow(); // 取得总列数 $highestColumn = $sheet->getHighestColumn(); //循环读取excel文件,读取一条,插入一条 $data=array(); //从第三行开始读取数据,第一行名字,第二行字段名 for($j=3;$j<=$highestRow;$j++){ //从A列读取数据 for($k=\'A\';$k<=$highestColumn;$k++){ // 读取单元格 $cellVal = $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue(); $data[$j][]=$cellVal; } } $stateTab = M(\'sxwx_policy_state\'); $stateTab ->startTrans(); foreach ($data as $key => $value) { $add[\'toubao_num\'] = $value[0]; $add[\'policy_state\'] = $value[1]; $add[\'state_reason\'] = $value[2]; $add[\'response_type\'] = $value[3]; $add[\'assign_time\'] = gmdate(\'Y-m-d\',intval(($value[4]-25569)*3600*24));//excel读取日期时间有问题,转化为日期 $add[\'completed_time\'] = gmdate(\'Y-m-d\',intval(($value[5]-25569)*3600*24));//excel读取日期时间有问题,转化为日期 $add[\'record_name\'] = $value[6]; $exist = $stateTab ->where($add) ->find(); if (!$exist) { $res[] = $stateTab ->add($add,array(),true); } } foreach ($res as $key => $value) { if ($value === false) { $stateTab ->rollback(); } } $stateTab ->commit(); $this -> backMsg(\'1\',\'数据批量导入成功\'); } private function backMsg($code,$desc){ $ret[\'code\'] = $cdoe; $ret[\'desc\'] = $desc; $this ->ajaxReturn($ret); }
$add[\'assign_time\'] = gmdate(\'Y-m-d\',intval(($value[4]-25569)*3600*24));//excel读取日期时间有问题,转化为日期 $add[\'completed_time\'] = gmdate(\'Y-m-d\',intval(($value[5]-25569)*3600*24));//excel读取日期时间有问题,转化为日期