根据上一篇的提示 我们已经做到了文件的导出, 导入 , 下面让我们一起来看一下吧文件导入到数据库中
提示: 改代码只是可以简单的完成该功能
准备工作:
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();
}
}