php、thinkphp中怎么导入excel中的数据,放到mysql中去,比如,有5个字段,求解释…………谢谢…………
3个回答
推荐于2016-09-21
展开全部
使用PHPexcel,你自己到网上搜这个插件吧,将需要的文件解压到Classes目录下,那么把这个目录放在框架thinkphp/extend/vendor/下面,我将自己项目中的部分代码给你看看
在ACTION中设置上传文件并获取文件:
import('ORG.Net.UploadFile');
$upload = new UploadFile();// 实例化上传类
$upload->maxSize = 3145728;// 设置附件上传大小
$upload->allowExts = array('xls');// 设置附件上传类型
$upload->savePath = './Uploads/';// 设置附件上传目录
if(!$upload->upload()) {// 上传错误提示错误信息
$this->error($upload->getErrorMsg());
}else{// 上传成功 获取上传文件信息
$info = $upload->getUploadFileInfo();
}
$filetmpname = './Uploads/'.$info[0]['savename'];
下面就需要使用phpexcel来解析
Vendor('Classes.PHPExcel');
$objPHPExcel = PHPExcel_IOFactory::load($filetmpname);
$excelarray= $objPHPExcel->getSheet(0)->toArray();
unlink($filetmpname);//删除上传的文件
//你要注意,excel表中如果从第一行的数据开始导入,那么直接按照下面的代码就可以,如果有表头之类的不需要的行,那么就是用 array_shift先删除数组中不需要的行
//循环给数据字段赋值
foreach($excelarr as $k=>$v){
$data[$k]['字段1']=$v[1];
$data[$k]['字段2']=$v[2];
$data[$k]['字段3']=$v[3];
$data[$k]['字段4']=$v[4];
$data[$k]['字段5']=$v[5];
}
上面的步骤就是获取了表格中的数据并赋值给了数组,下面就可以直接插入到数据库中了
$list=$charu=D('数据表名')->addAll($data);
非常简单吧,至于数据中的类型和验证等,自己在需要的位置设定就可以了
在ACTION中设置上传文件并获取文件:
import('ORG.Net.UploadFile');
$upload = new UploadFile();// 实例化上传类
$upload->maxSize = 3145728;// 设置附件上传大小
$upload->allowExts = array('xls');// 设置附件上传类型
$upload->savePath = './Uploads/';// 设置附件上传目录
if(!$upload->upload()) {// 上传错误提示错误信息
$this->error($upload->getErrorMsg());
}else{// 上传成功 获取上传文件信息
$info = $upload->getUploadFileInfo();
}
$filetmpname = './Uploads/'.$info[0]['savename'];
下面就需要使用phpexcel来解析
Vendor('Classes.PHPExcel');
$objPHPExcel = PHPExcel_IOFactory::load($filetmpname);
$excelarray= $objPHPExcel->getSheet(0)->toArray();
unlink($filetmpname);//删除上传的文件
//你要注意,excel表中如果从第一行的数据开始导入,那么直接按照下面的代码就可以,如果有表头之类的不需要的行,那么就是用 array_shift先删除数组中不需要的行
//循环给数据字段赋值
foreach($excelarr as $k=>$v){
$data[$k]['字段1']=$v[1];
$data[$k]['字段2']=$v[2];
$data[$k]['字段3']=$v[3];
$data[$k]['字段4']=$v[4];
$data[$k]['字段5']=$v[5];
}
上面的步骤就是获取了表格中的数据并赋值给了数组,下面就可以直接插入到数据库中了
$list=$charu=D('数据表名')->addAll($data);
非常简单吧,至于数据中的类型和验证等,自己在需要的位置设定就可以了
更多追问追答
追答
array_shift函数式删除数组的第一行的,看你的表第一行是空的,第二行是表头,都是不需要的,那么就写成:
array_shift($excelarray);
array_shift($excelarray);//两次就是删除两行
你的序列号不需要,那么循环赋值的时候按照我上面的代码不要字段1就可以了
展开全部
1、使用表单上传
2、使用$_FILE接收
3、使用PHPExce插件读取excel数据(网上有使用介绍)
4、将读取数据进行数据库插入
2、使用$_FILE接收
3、使用PHPExce插件读取excel数据(网上有使用介绍)
4、将读取数据进行数据库插入
追问
那个,请问你有试用的吗,打包个文件给我行吗,谢谢………………
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单方法:下个phpmyadmin就好了,支持的导入方式很多种:xls,csv,sql等等
追问
那个,要用页面来上传啊,就像上传文件那种啊…………
追答
phpmyadmin本来就是这么上传文件的方法啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |