博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
larave5.6 将Excel文件数据导入数据库代码实例
阅读量:5964 次
发布时间:2019-06-19

本文共 3776 字,大约阅读时间需要 12 分钟。

sheet('score', function ($sheet) use ($cellData) { $sheet->rows($cellData); }); })->export('xls');*/ //方法二: $users = AdminUser::all()->toArray(); $header[] = array('ID号', '姓名', '邮箱', '创建时间', '状态'); $arr = array(); foreach ($users as $one) { $data = array($one['id'], $one['name'], $one['email'], $one['created_at'], $one['status']); array_push($arr, $data); } $arrData = array_merge($header, $arr); Excel::create(iconv('UTF-8', 'UTF-8', '管理员表'), function ($excel) use ($arrData) { $excel->sheet('score', function ($sheet) use ($arrData) { $sheet->rows($arrData); }); })->store('xlsx')->export('xlsx'); } //导入 public function import(Request $request) { /*$filePath = 'storage/exports/' . iconv('UTF-8', 'GBK', '学生成绩') . '.xls'; Excel::load($filePath, function ($reader) { $data = $reader->all(); dd($data); });*/ // $file=Input::file('file'); dd(base_path()); $file = $request->file('file'); $tabl_name = date('YmdHis', time()) . rand(100, 999); $entension = $file->getClientOriginalExtension(); //上传文件的后缀. $new_name = $tabl_name . '.' . $entension; if ($file->isValid()) { $path = $request->file('file')->storeAs('import', $new_name); // 更新文件本地地址 storage/import/20180720105908.xlsx $path = '/public/storage/' . $path; // dd($path); ///public/storage/import/20180720124843.xlsx" Excel::load($path, function ($reader) use ($tabl_name) { //$data = $reader->all(); //获取Excel的第几张表 $reader = $reader->getSheet(0); //获取表中数据 $data = $reader->toArray();// dd($data); $result = $this->create_table($tabl_name, $data);// dd($result); }); } return redirect('/admin/files'); } //创建表 public function create_table($table_name, $field_arr) { $tmp = $table_name; $val = $field_arr; //创建表结构 因为已经有db_import表不再需要执行创建表结构程序。 //注意Excel标题最好是英文 /* $tables = DB::select("show tables"); $tables = array_column($tables, 'Tables_in_blog');*/ $tables = array_map('reset', \DB::select('SHOW TABLES')); if (!in_array('db_import', $tables)) { Schema::dropIfExists('db_import'); Schema::create("db_import", function (Blueprint $table) use ($tmp, $val) { $fields = $val[0]; //列字段 $table->increments('id'); //主键 foreach ($fields as $key => $value) { $table->string($fields[$key]); } }); } //填充数据 $value_str = array(); if ($id = DB::table('db_import')->max('id')) { $id = $id + 1; } else { $id = 1; } //$id = DB::table('db_import')->max('id') ? DB::table('db_import')->max('id') + 1 : 1; foreach ($val as $key => $value) { if ($key != 0) {// $content = implode(',', $value);// $content2 = explode(',', $content); foreach ($value as $key2 => $va2) { if (!empty($va2)) { $value_str[] = "'$va2'"; } } $news = implode(',', $value_str); if (!empty($news)) { $news = "$id," . $news; DB::insert("insert into db_import VALUES ($news)"); } $value_str = array(); $id = $id + 1; } } return $id; }}

 

 

转载地址:http://jztax.baihongyu.com/

你可能感兴趣的文章
<气场>读书笔记
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
从前后端分离到GraphQL,携程如何用Node实现?\n
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
jquery 操作iframe、frameset
查看>>
解决vim中不能使用小键盘
查看>>
jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs
查看>>
我的友情链接
查看>>
批量删除用户--Shell脚本
查看>>
Eclipse Java @Override 报错
查看>>
知道双字节码, 如何获取汉字 - 回复 "pinezhou" 的问题
查看>>
linux中cacti和nagios整合
查看>>