1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > tp5 excel 导入 mysql_thinkphp5 tp5中excel表格的导入数据库的实现示例

tp5 excel 导入 mysql_thinkphp5 tp5中excel表格的导入数据库的实现示例

时间:2018-12-29 20:01:00

相关推荐

tp5 excel 导入 mysql_thinkphp5 tp5中excel表格的导入数据库的实现示例

日常生活中,表格的导入很多!每次做导入的时候还需要百度一下,很麻烦!

这次稍微总结下方法吧!

本方法适用tp5.0框架

适用的方法也简单!希望对大家能有点帮助吧!

由于我这次本机的composer安装后需要重启,但是我电脑上的项目又特别赶时间,算了,还是老土办法吧!

下面开始上教程

1:下载PHPexcel包

下载地址:/PHPOffice/PHPExcel 点击下载zip包就可以了!

2:解压文件并重命名

3:上传到服务器的application目录下,具体如上图所示

4:创建导入的控制器,由于我这里是导入试题,所以我的控制器是exam。php

5:结合layui的上传插件,再控制器中实现数据的插入

/**

* 新建试题

*/

public function add()

{

require_once APP_PATH."myclass/PHPExcel/PHPExcel.php";

require_once APP_PATH."myclass/PHPExcel/PHPExcel/IOFactory.php";

require_once APP_PATH."myclass/PHPExcel/PHPExcel/Reader/Excel5.php";

$file = request()->file('file');

if($file){

$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads/exam');

$filename = $file->getInfo()["name"];

$path = '/public/uploads/exam/'.$info->getSaveName();

$objReader=\PHPExcel_IOFactory::createReader('Excel5');//use excel for format

$objPHPExcel=$objReader->load(".".$path);//$file_url即Excel文件的路径

$sheet=$objPHPExcel->getSheet(0);//获取第一个工作表

$highestRow=$sheet->getHighestRow();//取得总行数

$highestColumn=$sheet->getHighestColumn(); //取得总列数

$data = array();

//循环读取excel文件,读取一条,插入一条

for($j=2;$j<=$highestRow;$j++){

//从第一行开始读取数据

$str='';

for($k='A';$k<=$highestColumn;$k++){ //从A列读取数据

//这种方法简单,但有不妥,以'\\'合并为数组,再分割\为字段值插入到数据库,实测在excel中,如果某单元格的值包含了\\导入的数据会为空

$str.=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().'\\';//读取单元格

}

//explode:函数把字符串分割为数组。

$strs=explode("\\",$str);

$d["content"] = $strs[1];

$d["A"] = $strs[2];

$d["B"] = $strs[3];

$d["C"] = $strs[4];

$d["D"] = $strs[5];

$d["answer"] = $strs[6];

$d["add_time"] = time();

array_push($data,$d);

}

$exam["title"] = $filename;

$exam["add_time"] = time();

$exam["question_count"] = count($data);

$exam["every_question_score"] = 100/count($data);

//试题名查重

if(Db::name("exam")->where(["title"=>$filename])->find()){

return json(["code"=>40000,"msg"=>"试卷名重复,请检查是否早已导入"]);

}

$exam_id = Db::name("exam")->insertGetId($exam);//试卷名的完善和导入

foreach ($data as $k=> $v){

$data[$k]["exam_id"] = $exam_id;

}

$res = Db::name("exam_questions")->insertAll($data);

unlink(".".$path); //删除excel文件

if($res){

return json(["code"=>200,"msg"=>"导入成功"]);

}else{

return json(["code"=>40000,"msg"=>"导入失败"]);

}

}

return $this->fetch();

}

大家根据自己创建的文件目录去修改自己引入的excel的包路劲!

require_once APP_PATH."myclass/PHPExcel/PHPExcel/Reader/Excel5.php";如果报错试试

require_once APP_PATH."myclass/PHPExcel/PHPExcel/Reader/Excel.php";

其他报错可以参考

/cqingt/p/5338023.html

代码下载地址【包含控制器文件】:

链接:/s/1Rvw4iSnM17NHEOA_CSS1ZA 密码:059h

本文由米醋儿网首发!转载请注明出处

软件下载链接

点击下载(2积分)

如何下载

积分获取攻略

下载说明:本站软件全部都是由个收集,绝对无毒无公害!如若有侵权或,请联系qq571031767进行删除!

软件1群:209183654 2群:524440238 3群:397053211 4群:684245561

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。