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

xiaoxiao2021-02-28  109

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

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

准备工作:

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

 

转载请注明原文地址: https://www.6miu.com/read-40015.html

最新回复(0)