Laravel 上传excel,读取并写入数据库 (实现自动建表、存记录值
<?php namespace App\Http\Controllers; use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Support\Facades\Input;
use Maatwebsite\Excel\Facades\Excel; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB; class QueryController extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function index(){ $file = Input::file('myfile');
if($file){
// $realPath = $file
// $path = $file -> move(app_path().'/storage/uploads');
$realPath = $file->getRealPath();
$entension = $file -> getClientOriginalExtension(); //上传文件的后缀.
$tabl_name = date('YmdHis').mt_rand(100,999);
$newName = $tabl_name.'.'.'xls';//$entension;
$path = $file->move(base_path().'/uploads',$newName);
$cretae_path = base_path().'/uploads/'.$newName; //dd($cretae_path);
//dd($file); Excel::load($cretae_path, function($reader) use($tabl_name){
//$data = $reader->all(); //获取excel的第几张表
$reader = $reader->getSheet(0);
//获取表中的数据
$data = $reader->toArray(); $result = $this->create_table($tabl_name,$data);
dd($result); //dd($data);
}); } return view('query.index');
} public function create_table($table_name,$arr_field)
{ $tmp = $table_name;
$va = $arr_field;
Schema::create("$tmp", function(Blueprint $table) use ($tmp,$va)
{
$fields = $va[0]; //列字段
//$fileds_count = 0; //列数
$table->increments('id');//主键
foreach($fields as $key => $value){
if($key == 0){
$table->string($fields[$key]);//->unique(); 唯一
}else{
$table->string($fields[$key]);
}
//$fileds_count = $fileds_count + 1;
}
}); $value_str= array();
$id = 1;
foreach($va as $key => $value){
if($key != 0){ $content = implode(",",$value);
$content2 = explode(",",$content);
foreach ( $content2 as $key => $val ) {
$value_str[] = "'$val'";
}
$news = implode(",",$value_str);
$news = "$id,".$news;
DB::insert("insert into db_$tmp values ($news)");
//$value_str = '';
$value_str= array();
$id = $id + 1;
}
}
return 1;
} }
https://blog.csdn.net/a9925/article/details/51201405
Laravel 上传excel,读取并写入数据库 (实现自动建表、存记录值的更多相关文章
- java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)
使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...
- 使用ocupload和POI一键上传Excel并解析导入数据库
使用的工具如下: JQuery ocupload jquery.ocupload-1.1.2.js Apache POI poi-3.9.jar 如果是Maven项目添加依赖如下: <depe ...
- C#连接Excel读取与写入数据库SQL ( 上 )
第一次写C#与sql的东西,主要任务是从Excel读取数据,再存到SQL server中. 先上读取Excel文件的code如下. public bool GetFiles(string equipN ...
- jsp上传excel文件并导入数据库
1,excel文件的上传 需要借助jar包:commons-fileupload-1.2.1.jar以及commons-io-1.3.2.jar 前端的html文件 <form id=" ...
- C#连接Excel读取与写入数据库SQL ( 下 )
接上期 dataset简而言之可以理解为 虚拟的 数据库或是Excel文件.而dataset里的datatable 可以理解为数据库中的table活着Excel里的sheet(Excel里面不是可以新 ...
- java中用activiti插件连接mysql数据库,自动建表过程中,在配置mysql架包路径“org.activiti.engine.ActivitiException: couldn't check if tables “
java中用activiti插件连接mysql数据库,出现错误: org.activiti.engine.ActivitiException: couldn't check if tables are ...
- 使用Mysql 5.5数据库Hibernate自动建表创建表出错table doesn't exist
在mysql 5.0版本以后不支持 type=InnoDB 关键字,需要使用 engine=InnoDB 配置文件方言改成如下即可 <property name="dialect&qu ...
- 上传excel数据到数据库中
上传excel表格数据到数据库 导入固定路径下的excel数据到数据库 <form id="disposeFlightDataForm" action="../up ...
- jmert中如何测试上传文件接口(测试上传excel文件)
第一次用jmeter这个工具测试上传接口,以前没做过这一块,导致走了很多弯路.特地把经验谢谢,怕自己以后忘记... 一,jmeter如何上传文件 jmeter 的 http requests post ...
随机推荐
- 设置Linux系统的空闲等待时间TMOUT的方法和Linux反空闲设置的两种方法
为了增强linux系统的安全性,我们需要在用户输入空闲一段时间后自动断开,这个操作可以由设置TMOUT值来实现.将以下字段加入到/etc/profile 中即可(对所有用户生效). export TM ...
- Thinkphp 不足之处
1.报错机制 //控制器里面直接输出如下内容,代码不提示.TP报错机制已经开启 echo $aaaaaa; bbbbbbbbb; eco bbbbbbbb; 正常应该给出以下提示 Notice: Un ...
- Vue--vue中的组件、组件绑定事件和数据、私有组件、子组件,父子组件参数互传
一.公有组件以及组件的使用和特点 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- Codeforces 356A
这题有个注意的地方,就是对集合边读边删除的时候,应该尤为注意.. my_set.erase(it++) #include <iostream> #include <cstring ...
- OpenLayers在地图外放置控件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...
- php手册常用的函数
<?php ************************************************************/ header("Content-type:tex ...
- 【水滴石穿】react-native-aze
说个题外话,早上打开电脑的时候,电脑变成彩色的了,锅是我曾经安装的一个chrome扩展,没有经过我的同意开启了 (也许是昨天迷迷糊糊开启了) 上午运行项目都不成功,还以为被黑客攻击了---然后下午就排 ...
- php_imagick是怎么实现复古效果的呢?
php_imagick程序示例 1.创建一个缩略图并显示出来 <?phpheader('Content-type: image/jpeg');$image = new Imagick('imag ...
- git day01笔记 常用操作命令 快照 推送 拉取
ansible 批量在远程主机上执行命令或者脚本 git 做版本控制的一个工具 ## git操作命令: 工作区:当前编辑的区域 缓存区:add 之后的区域 本地仓库:commit之后的区域 远程仓 ...
- day39-Spring 08-Spring的AOP:基于AspectJ的注解
基于AspectJ的注解的开发要重点掌握. 这些表达式肯定要应用在我们的某些个增强上. 学习AspectJ也是两种形式:一种是XML,一种是注解.AspectJ的增强,就是那些通知的类型.Aspect ...