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

本文将指导如何使用Laravel5.4将Excel文件数据上传到数据库。通过简单步骤和代码示例,演示了从指定路径(如storage/exports/)读取xls文件并导入到数据库的过程。请注意,此方法适用于基础导入功能,可能需要根据实际表头调整。
摘要由CSDN通过智能技术生成

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

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

准备工作:

 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();
            }
        
        }




 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值