sentongxue
//上传文件
    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读取日期时间有问题,转化为日期

分类:

技术点:

相关文章: