1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用phpexcel将excel表格的导入导出

使用phpexcel将excel表格的导入导出

时间:2023-12-09 11:43:56

相关推荐

使用phpexcel将excel表格的导入导出

使用phpexcel将excel表格的导入数据库

1–使用composer安装phpexcel包

composer require phpoffice/phpexcel -vvv

2-控制器

//导入数据

public function insertExcel(){if(request() -> isPost()){vendor("PHPExcel.PHPExcel"); //方法一$objPHPExcel =new \PHPExcel();//获取表单上传文件$file = request()->file('excel');$info = $file->validate(['xls' => 'xlsx'])->move(ROOT_PATH . 'public'); //上传验证后缀名,以及上传之后移动的地址//获取layui文件上传的$file = request()->file("file");$info = $file->validate(['ext' => 'xls'])->move(ROOT_PATH . 'public'); //上传验证后缀名,以及上传之后移动的地址 if($info){// echo $info->getFilename();$exclePath = $info->getSaveName(); //获取文件名$file_name = ROOT_PATH . 'public' . DS . $exclePath;//上传文件的地址$objReader =\PHPExcel_IOFactory::createReader("Excel");$obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8$excel_array=$obj_PHPExcel->getSheet(0)->toArray(); //转换为数组格式array_shift($excel_array); //删除第一个数组(标题);$city = [];$i=0;foreach($excel_array as $k=>$v) {$city[$k]['id'] = $v[0];$city[$k]['phone'] = $v[1];$city[$k]['username'] = $v[2];$city[$k]['nickname'] = $v[3];$city[$k]['end_time'] = $v[4];$city[$k]['level'] = $v[5];$i++;}Db::name("users")->insertAll($city);}else{echo $file->getError();}}return $this->fetch("user-excel");}

3-表单提交

<form action="{:url('admin/user/insertExcel')}" method="post" class="form form-horizontal" enctype="multipart/form-data"><div class="row cl"><label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>导入数据:</label><div class="formControls col-xs-8 col-sm-9"><input type="file" name="excel" /></div></div><div class="row cl"><div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3"><input class="btn btn-primary radius" type="submit" value="&nbsp;&nbsp;提交&nbsp;&nbsp;"></div></div></form>4-layui 文件上传<div id="useradd" style="display: none;padding: 5px;margin-top: 20px" ><form class="layui-form" enctype="multipart/form-data"><div class="layui-row"><div class="layui-col-md6" style="margin: auto"><a class="layui-btn layui-btn-normal" target="_blank" href="/download/goods.xls" ><i class="layui-icon layui-icon-download-circle"></i>下载文件</a></div><div class="layui-col-md6" style="margin: auto"><button class="layui-btn layui-btn-danger" type="button" id="contract_img_url1" ><i class="layui-icon"></i>上传文件</button></div></div></form></div>js 代码<script>layui.use('upload', function(){var upload = layui.upload;//执行实例var uploadInst = upload.render({elem: '#contract_img_url1' //绑定元素,accept:'file',exts:'xls',url: "{:url('admin/user/insertExcel')}",before: function(obj){//obj参数包含的信息,跟 choose回调完全一致,可参见上文。layer.load(); //上传loading},done: function(res, index, upload){//上传完毕回调layer.closeAll('loading'); //关闭loadingif(res.code==1){return layer.msg('上传成功',{icon:1});}else {return layer.msg('上传失败');}},error: function(index, upload){//请求异常回调layer.closeAll('loading'); //关闭loading}});});</script>

使用phpexcel导出excel表格

1-使用composer安装phpexcel包

composer require phpoffice/phpexcel -vvv

2-控制器里面的方法

public function excel(){$users = Db::name("users")->select();//数据库查询$path = dirname(__FILE__); //找到当前脚本所在路径vendor("PHPExcel.PHPExcel"); //方法一$PHPExcel = new \PHPExcel();$PHPSheet = $PHPExcel->getActiveSheet();$PHPSheet->setTitle("demo"); //给当前活动sheet设置名称$PHPSheet->setCellValue("A1", "ID")->setCellValue("B1", "手机")->setCellValue("C1", "用户名")->setCellValue("D1", "昵称")->setCellValue("E1", "结束时间")->setCellValue("F1", "等级");$i = 2;foreach($users as $data){$PHPSheet->setCellValue("A" . $i, $data['id'])->setCellValue("B" . $i, $data['phone'])->setCellValue("C" . $i, $data['username'])->setCellValue("D" . $i, $data['nickname'])->setCellValue("E" . $i, $data['end_time'])->setCellValue("F" . $i, $data['level']);$i++;}$PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, "Excel");header('Content-Disposition: attachment;filename="表单数据.xlsx"');header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');$PHPWriter->save("php://output"); //表示在$path路径下面生成demo.xlsx文件}

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