//上传文件 ???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读取日期时间有问题,转化为日期
ThinkPHP 文件上传处理
原文地址:https://www.cnblogs.com/sentongxue/p/9737384.html