thinkphp5 , tp5 导入 Excel ,phpExcel 插件使用,文件上传
2017-05-31 16:33
816 查看
HTML
JS
PHP
<form action="/index.php?m=Admin&c=TaoBao&a=do_upload" enctype="multipart/form-data" method="post" style="display: none;" id="uploadForm"> <input type="file" name="excel" id="file_excel" value="" onchange="select_file_excel()"/> <a class="btn red" onclick="file_excel()"><i class="fa fa-fax"></i>导入数据</a> </form>
JS
//导入excel function file_excel(){ $("#file_excel").click(); } //选择文件 function select_file_excel() { $.ajax({ url: '你的上传路径', type: 'POST', cache: false, data: new FormData($('#uploadForm')[0]), dataType:'json', processData: false, contentType: false, success:function(json){ //清空内容 $("#file_excel").val(''); //返回提示信息 //todo 待处理代码 } }); }
PHP
<?php namespace app\admin\controller; use think\Db; //此父类可能有变动,自行修改 class TaoBao extends Base{ public function do_upload(){ //引入文件(把扩展文件放入vendor目录下,路径自行修改) vendor("PHPExcelClass.PHPExcel"); //获取表单上传文件 $file = request()->file('excel'); $info = $file->validate(['ext' => 'xlsx,xls'])->move(ROOT_PATH . 'public' . DS . 'upload' . DS . 'TaoBao'); //数据为空返回错误 if(empty($info)){ $output['status'] = false; $output['info'] = '导入数据失败~'; $this->ajaxReturn($output); } //获取文件名 $exclePath = $info->getSaveName(); //上传文件的地址 $filename = ROOT_PATH . 'public' . DS . 'upload' . DS . 'TaoBao'. DS . $exclePath; //判断截取文件 $extension = strtolower( pathinfo($filename, PATHINFO_EXTENSION) ); //区分上传文件格式 if($extension == 'xlsx') { $objReader =\PHPExcel_IOFactory::createReader('Excel2007'); $objPHPExcel = $objReader->load($filename, $encode = 'utf-8'); }else if($extension == 'xls'){ $objReader =\PHPExcel_IOFactory::createReader('Excel5'); $objPHPExcel = $objReader->load($filename, $encode = 'utf-8'); } $excel_array = $objPHPExcel->getsheet(0)->toArray(); //转换为数组格式 array_shift($excel_array); //删除第一个数组(标题); $city = []; foreach($excel_array as $k=>$v) { if(empty(Db::name('excel_shop')->where(['goods_id'=>$v[0]])->value('name'))){ $city[$k]['goods_id'] = $v[0]; //$city[$k]['xxx'] = $v[1]; //$city[$k]['xxx'] = $v[2]; } } Db::name('excel_shop')->insertAll($city); //批量插入数据 $output['status'] = true; $output['info'] = '导入数据成功~'; $this->ajaxReturn($output); } }
相关文章推荐
- 使用phpexcelreader插件 结合mysql 与 导入Excel文件(.xls)
- ThinkPHP3.1.3使用phpExcel1.8.0实现数据从Excel表格导入mysql数据库
- PHP上传Excel文件导入数据到MySQL数据库示例
- tp5 Composer安装与加载phpexcel插件与使用
- 使用thinkphp实现上传文件(uploadify插件)
- PHPExcel插件的使用2——基本数据导入
- Thinkphp拖拽上传文件-使用webuploader插件(自己稍微改动了一些地方)——不切片上传
- 使用Activex插件复制剪贴板中的word或excel内容到web HTML编辑器并自动上传图片或文件
- BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
- ThinkPHP 3.2 PHPExcel 导入导出文件 第三方类库不能用问题解决
- C#实现使用form上传Excel文件,导入Excel数据到SQL SERVER数据库
- 使用PHP导入Excel和导出数据为Excel文件
- ThinkPHP 3.2 + PHPExcel 导入导出文件 第三方类库不能用问题解决
- PHPExcel导入导出 若在thinkPHP3.2中使用(无论实例还是静态调用(如new classname或classname::function)都必须加反斜杠,因3.2就命名空间,如/classname
- PHP使用ocupload插件 一键上传并解析EXCEL
- ThinkPHP 3.2 + PHPExcel 导入导出文件 第三方类库不能用问题解决
- Thinkphp中使用PHPExcel 导入导出excel
- Thinkphp拖拽上传文件-使用webuploader插件(自己改动了一些地方)——分片上传
- thinkphp 导出Excel文档,导入Excel文档;PHPExcel的使用
- jQuery+php+ajax+PHPExcel实现上传excel文件导入数据库