laravel 框架導入后續(xù) 寫入數(shù)據(jù)庫

寫入數(shù)據(jù)庫

   public function lessons_excel(Request $request)
   {   
                $time_star = time();//得到當前時間戳肌割,用來在最后計算文件導入完畢后的用時
                //set_time_limit — 設置腳本最大執(zhí)行時間啤覆。默認值為30秒复濒,或者是在php.ini的max_execution_time被定義的值,如果此值存在蒲肋。如果設置為0(零)蘑拯,沒有時間方面的限制。
                $rlt = $this->upload_data($request);//調(diào)用上面的方法肉津,上傳文件得到文件名

             if ($rlt["success"] == false) {
                    return response()->json($rlt); 
            } else {
                 try {
                        $data = [];
                        $error= [];
                        $data1 = array();
                        $err_count='0';
                        $success_count='0';
                        $table = $this->load_excel($rlt["message"]);//調(diào)用load_excel方法導入文件

               

                       foreach ($table as $key =>$v) {
                                       if($key != '0'){
                                            foreach ($table[0] as $key1 =>$v1) {
                                                 $row[$v1] = trim($v[$key1]);//姓名
                                            }array_push($data, $row); 
                                        } 
                        }array_push($data1, $data); 

                        foreach($data as $d){
                               if(!$d)continue;
                               try{
                                           
                                                $insert_id = DB::table("school_lessons")->insertGetId($d);
                                                //一些數(shù)據(jù)庫操作
                                            
                                            $success_count++;
                                       
                                
                                }catch (\Exception $e){
                                            $err_count++;

                                            array_push($error,$d);//失敗數(shù)據(jù)存起來后面將把失敗數(shù)據(jù)導出
                                            continue;
                                } 


                        }
                        if($error){
                                  
                                array_unshift($error,$table[0]);//將標題插入失敗數(shù)據(jù)的第一行强胰,后面導出
                                session(['error'=>$error]);//將要導出的內(nèi)容存入session 鍵值為error
                                $download = true;//向前臺返回一個標識,true說明有失敗數(shù)據(jù)
                        }else{
                                $download = false;
                        }

                $time_end = time();
                return response()->json(["success" => true, "message" => "本次共導入 ".($success_count+$err_count).' 條數(shù)據(jù), 其中成功 '.$success_count.' 條  , 其中失敗 '.$err_count.' 條 妹沙。 ','download'=>$download,'time'=>($time_end-$time_star)]);

       
        } catch (\Exception $e) {


            return response()->json(["success" => false, "message" => "數(shù)據(jù)導入失敗"]); 
            
        }
}

調(diào)用上面的方法,上傳文件得到文件名

        //上傳文件調(diào)用的方法
private function upload_data(Request $request)//導入的時候  上傳文件
{
    if (!$request->hasFile('file')) {
        return [
            'success' => false,
            'message' => '上傳文件為空'
        ];
    }//判斷文件是否上傳成功
    $file = $request->file('file');
    if (!$file->isValid()) {
        return [
            'success' => false,
            'message' => '文件上傳出錯'
        ];
    }
       
            //獲取原文件名
            $originalName = $file->getClientOriginalName();
            //擴展名
            $ext = $file->getClientOriginalExtension();
            //文件類型
            $type = $file->getClientMimeType();
            //臨時絕對路徑
            $realPath = $file->getRealPath();

            $filename =date('Y-m-d H_i_s').uniqid().'.'.$ext;
            $storage_path = 'storage/excel';
             

             $bool = $file->move($storage_path, $filename);

           

            if($bool){

                   return [//上傳成功返回文件名稱
                          'success' => true,
                          'message' => $filename
                    ];
            }else{

                    return [
                            'success' => false,
                            'message' => '文件保存失敗'
                        ];
            }

     
}

調(diào)用load_excel方法導入文件

   private function load_excel($filename)
    {
          $filePath = 'storage/excel/' . $filename;
           $reader = Excel::load($filePath);//要開始導入文件熟吏,可以使用->load($filename)距糖。回調(diào)是可選的牵寺。
            $reader = $reader->getSheet(0);//得到Excel的第一頁內(nèi)容悍引,如下圖3
            return $reader->toArray();
 }
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市帽氓,隨后出現(xiàn)的幾起案子趣斤,更是在濱河造成了極大的恐慌,老刑警劉巖黎休,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浓领,死亡現(xiàn)場離奇詭異玉凯,居然都是意外死亡,警方通過查閱死者的電腦和手機联贩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門漫仆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泪幌,你說我怎么就攤上這事盲厌。” “怎么了祸泪?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵吗浩,是天一觀的道長。 經(jīng)常有香客問我没隘,道長拓萌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任升略,我火速辦了婚禮微王,結果婚禮上,老公的妹妹穿的比我還像新娘品嚣。我一直安慰自己炕倘,他們只是感情好,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布翰撑。 她就那樣靜靜地躺著罩旋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪眶诈。 梳的紋絲不亂的頭發(fā)上涨醋,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音逝撬,去河邊找鬼浴骂。 笑死,一個胖子當著我的面吹牛宪潮,可吹牛的內(nèi)容都是我干的溯警。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼狡相,長吁一口氣:“原來是場噩夢啊……” “哼梯轻!你這毒婦竟也來了?” 一聲冷哼從身側響起尽棕,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤喳挑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伊诵,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡单绑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了日戈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片询张。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖浙炼,靈堂內(nèi)的尸體忽然破棺而出份氧,到底是詐尸還是另有隱情,我是刑警寧澤弯屈,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布蜗帜,位于F島的核電站,受9級特大地震影響资厉,放射性物質發(fā)生泄漏厅缺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一宴偿、第九天 我趴在偏房一處隱蔽的房頂上張望男杈。 院中可真熱鬧盐股,春花似錦伏穆、人聲如沸就谜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽活翩。三九已至,卻和暖如春翻伺,著一層夾襖步出監(jiān)牢的瞬間材泄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工吨岭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拉宗,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓未妹,卻偏偏與公主長得像簿废,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子络它,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容