laravel5.4 把excal的数据上传到数据库的操作

来源:互联网 发布:淘宝品质退款率怎么降 编辑:程序博客网 时间:2024/06/01 08:59

根据上一篇的提示 我们已经做到了文件的导出, 导入 , 下面让我们一起来看一下吧文件导入到数据库中

提示: 改代码只是可以简单的完成该功能

准备工作:

 1. 在根目录的任意结构 存入一个名字为1234.xls  我的是在 storage/exports/

  2. 有一个备份的数据库 , 一个正式的数据库

  3.  假如表头有文字根据提示 做修改      http://blog.csdn.net/sunny_lg/article/details/72876439

 代码:

 public function charRu()    {             $filePath = 'storage/exports/' . iconv('UTF-8', 'GBK', '1234') . '.xls';        $ret = [];        Excel::load($filePath, function ($reader) {            $data = $reader->all();            $daily= [];            foreach ($data as $sheet => $dataItem) {                foreach ($dataItem as $ik => $item) {                    if ($sheet == 0) {                        foreach ($item as $i) {                            $daily[$ik][] = $i;                        }                    }                 }            }                      $ret= self::saveDaily($daily);          });       echo  "成功"          }    public static  function  saveDaily($daily){         foreach($daily as $da) {            if (is_null($da[0]) || is_null($da[1]){                continue;            }    $orm = new \App\Http\Model\Copy();             $orm->car_id = $da[0];             $orm->level_id = $da[1];             $orm->evaluate = $da[2];             $orm->hot = $da[3];            if(!$orm->save()){                $error[] = "保存失败";            }        }              if(empty($error)){            $dailyTemps = Copy::all();             foreach($dailyTemps as $dailyTemp) {                $dailyOrm = Days::where(['evaluate' => $dailyTemp->evaluate])->first();                if(empty($dailyOrm)){                    $dailyOrm = new \App\Http\Model\Days();                }                $files = $dailyOrm->getFillable();                foreach($files as $file){                    $dailyOrm->$file = $dailyTemp->$file;                }                $dailyOrm->save();            }                }



 


原创粉丝点击