thinkphp excel导入数据

excel列表中时间添加

function getCellValue($cell, $date_format = "Y-m-d H:i:s")
    {
        $value = $cell->getValue();
        if($cell->getDataType() == \PHPExcel_Cell_DataType::TYPE_NUMERIC){
            //版本过低的话请加上 getParent 例:$cell->getParent()->getStyle($cell->getCoordinate())->getNumberFormat();
            $cell_style_format = $cell->getStyle($cell->getCoordinate())->getNumberFormat(); //不需要getParent
            $format_code = $cell_style_format->getFormatCode();
            if (preg_match('/^([$[A-Z]*-[0-9A-F]*])*[hmsdy]/i', $format_code)) { //判断是否为日期类型
                $value = gmdate($date_format, \PHPExcel_Shared_Date::ExcelToPHP($value)); //格式化日期
            }else{
                $value = \PHPExcel_Style_NumberFormat::toFormattedString($value, $format_code); //格式化数字
            }
        }
        return $value;
    }

导入处理

  public function importTrainPlan($coach_id,$file){
        $path = ROOT_PATH . '/public/upload/' . $file;
        $phpReader = new \PHPExcel_Reader_Excel2007();
        if (!$phpReader->canRead($path)) {
            $phpReader = new \PHPExcel_Reader_Excel5();
            if (!$phpReader->canRead($path)) {
                return ['code' => -1, 'msg' => '无法读取文件,请检查文件是否为excel'];
            }
        }

        $objPHPExcel = $phpReader->load($path);
        $currentSheet = $objPHPExcel->getSheet(0);         //读取excel文件中的第一个工作表
        $allRow = $currentSheet->getHighestRow();           //取得一共有多少行


        //从第一行开始读取数据
        $startRow = 2;
        $endRow = $startRow + 100;
        //以防出现很多的空行
        if ($endRow >= $allRow) $endRow = $allRow;
        try{
            //周日期
            $start_time = self::getCellValue($objPHPExcel->getActiveSheet()->getCell("B" . 2),'Y-m-d H:i:s');
            $end_time = self::getCellValue($objPHPExcel->getActiveSheet()->getCell("C" . 2), 'Y-m-d 23:59:59');

            //专项训练重点及要求
            $planData['special_train'] = $objPHPExcel->getActiveSheet()->getCell("B" . 5)->getValue();
         
          //语句处理


            for($i=13;$i<=$endRow;$i++) {
                //日期
                $date = self::getCellValue($objPHPExcel->getActiveSheet()->getCell("A" . $i));
                //判断是否为空,为空跳出循环,防止添加空数据,在确保改字段每行都有数据
                if(empty($date)){
                    continue;
                }
                //用户名
                $user_name = $objPHPExcel->getActiveSheet()->getCell("B" . $i)->getValue();
              

                $detail['plan_id']         = $trainPlanId;
                $detail['date']            = strtotime($date);
               
                if(strpos($user_name,'/') !== false){
                    $user_nameRe = explode('/',$user_name);
                    $user_id =[];
                    foreach ($user_nameRe as $key =>$value){
                        $user_id[] = Db::name('member')
                            ->where('user_name',$value)->value('id');
                    }
                    $detail['member_id'] = implode($user_id,',');

                }else{
                    $detail['member_id'] = Db::name('member')
                        ->where('user_name',$user_name)->value('id');
                }
                $detail['is_delete']       = 0;

               //语句处理

            }
            return ['code' => 1, 'msg' => '导入成功'];
        }catch (Exception $exception){
            return ['code' => -1, 'msg' => '导入成功'];
        }


    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值