首页 > 编程知识 正文

thinkphp导入excel,thinkphp 表统计

时间:2023-05-04 16:35:52 阅读:224821 作者:4174

/*导入Excel有两种可能 1.导入的Excel本身就有重复项 2.导入的Excel数据和已有的数据库信息有重复项 解决思路: 1.先不管是否有重复项,直接导入到一张临时表,然后经过去重处理插入到一张新表(比较麻烦,数据处理过程多) 2.先获取Excel的数据,然后循环读取数据,在循环里把每条数据和数据库里的数据进行对比,如果没有就插入, 如果有就更新这条数据(导入过程中就处理数据,过程简单) */ //导入Excelpublic function importExecl(){ import('ORG.Net.UploadFile'); $upload=new UploadFile();// 实例化上传类 $upload->allowExts=array('xls','xlsx');// 设置附件上传类型 $upload->savePath='./Uploads/';// 设置附件上传目录 $upload->saveRule=date('Ymdhis');//设置附件上传名称 if(!$upload->upload()){// 上传错误提示错误信息 $this->error($upload->getErrorMsg()); }else{//上传成功 获取上传文件信息 $info=$upload->getUploadFileInfo(); } $filetmpname='./Uploads/'.$info[0]['savename'];//获取上传的Excel的文件名 import('ORG.Util.PHPExcel'); $objPHPExcel = PHPExcel_IOFactory::load($filetmpname); $sheetCount = $objPHPExcel->getSheetCount(); $excelarr=array(); $excelarr= $objPHPExcel->getSheet(0)->toArray(); $line_list=M("line_list"); for($i=1;$i<=count($excelarr);$i++) { $data['type'] = $excelarr[$i][0]; $data['account_name'] = $excelarr[$i][1]; $data['clerk'] = $excelarr[$i][2]; $data['checkin_time'] = $excelarr[$i][3]; $data['client_name'] = $excelarr[$i][4]; $data['project'] = $excelarr[$i][5]; $data['capacity'] = $excelarr[$i][6]; $data['line_number'] = $excelarr[$i][7]; $data['monthly_amount'] = $excelarr[$i][8]; $data['open_time'] = $excelarr[$i][9]; $data['billing_time'] = $excelarr[$i][10]; $data['down_time'] = $excelarr[$i][11]; $data['invoice'] = $excelarr[$i][12]; $data['status'] = $excelarr[$i][13]; $data['remarks'] = $excelarr[$i][14];//上面的$date是读取Excel的每条数据 $result = $line_list->where ("line_number='{$data['line_number']}'")->field('id,line_number')->find(); if (empty($result['line_number'])) { $rs = $line_list->add ($data);//如果线路编号为空就添加这条数据 }else{ $rs=$line_list->where("id='{$result['id']}'")->save($data);//如果已有这条数据就更新这条数据 } } if($rs){ unlink($filetmpname);//这里是删除上传后的文件 $this->success("上传成功","__URL__/index"); }else{ $this->error("上传失败","__URL__/index"); }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。