微信辅助做单网站,手工折纸,做网站都有什么功能,上海seo推广在项目根目录安装
composer require phpoffice/phpspreadsheet
我们看一下郊果图#xff0c;如下
点击导入excel表格数据 出现弹窗选择文件#xff0c;控制台打开输出文档内容 前端layui代码
form iduploadForm classform-horizontal encty…在项目根目录安装
composer require phpoffice/phpspreadsheet
我们看一下郊果图如下
点击导入excel表格数据 出现弹窗选择文件控制台打开输出文档内容 前端layui代码
form iduploadForm classform-horizontal enctypemultipart/form-datainput typefile namefile classfile multiplemultiple requiredbutton typebutton idupload classbtn btn-xs btn-purplespan classace-icon fa fa-cloud-upload icon-on-right bigger-110/span上传文件/button
/form
layui.use([form,layer],function () {$(#input_excel_data).click(function () {// console.log(点击导入了);// layer.msg(点击导入了);layer.open({type: 1,area: [500px, 360px],title: 导入excel文件,content:$(#file_upload_div),});});$(#upload_file).click(function () {//上传文档// var data new FormData;// data.append(file,my_file);// data.append(name,my_file.name);var formData new FormData($(#uploadForm)[0]);$.ajax({type:post,url:user/input_excel_data,contentType:false,processData:false,data:formData,success:function (data) {console.log(data);layer.msg(导入成功);}});})
});
整个laui页面文件如下 {extend namepublic/layout}
{block namecontent}
div classlayui-col-md12div classlayui-carddiv classlayui-card-header!-- button classlayui-btn onclickxadmin.open(添加用户组,{:admin_url(admin_user/add)})添加管理员/button --form iduploadForm classform-horizontal enctypemultipart/form-datadiv idfile_upload_div styledisplay: none classtext-centerinput typefile namefile classfile multiplemultiple required
!-- button typebutton idupload_file classbtn btn-xs btn-purple--
!-- span classace-icon fa fa-cloud-upload icon-on-right bigger-110/span上传文件--
!-- /button--button typebutton classlayui-btn mt-2 idupload_file开始上传/button/div/form/divdiv classlayui-card-header styleheight:autoform classlayui-form layui-col-space5 idmain-form div classlayui-inline layui-show-xs-block{if isset($params[nickname]) !empty($params[nickname])}input typetext namenickname placeholder用户名 value{$params[nickname]} autocompleteoffclasslayui-input{else /}input typetext namenickname placeholder用户名 value autocompleteoffclasslayui-input{/if}/divdiv classlayui-inline layui-show-xs-block{if isset($params[phone])}input typetext namephone placeholder手机号 value{$params[phone]} autocompleteoffclasslayui-input{else/}input typetext namephone placeholder手机号 value autocompleteoffclasslayui-input{/if}/divdiv classlayui-inline layui-show-xs-blockselect nameenableoption value状态/option{if isset($params[enable])}option value1 {eq name$params[enable] value1}selected{/eq}正常/optionoption value2 {eq name$params[enable] value2}selected{/eq}禁用/option{else/}option value1正常/optionoption value2禁用/option{/if}/select/divdiv classlayui-inline layui-show-xs-blockbutton classlayui-btn lay-submit lay-filtersearchiclasslayui-icon#xe615;/i/buttonbutton classlayui-btn typebutton lay-submitonclicklocation.href location.pathname重置/buttonbutton classlayui-btn typebutton lay-submit onclicklocation.reload()刷新/buttonbutton classlayui-btn typebutton lay-submit idinput_excel_data导入excel表格数据/button/div/form/divdiv classlayui-card-body table classlayui-table layui-formtheadtr!-- thinput typecheckbox name lay-skinprimary/th --th头像/thth手机号/thth昵称/thth性别/thth状态/thth创建时间/thth操作/th/tr/theadtbody{volist namedatalist idvo}tr!-- tdinput typecheckbox name lay-skinprimary /td --tdimg stylewidth: 50px;height: 50px src{$vo[avatar]} alt/tdtd{$vo[phone]}/tdtd{$vo[nickname]}/tdtd{$vo[sex]}/tdtd{$vo[enable]}/tdtd{$vo[create_time]}/tdtd classtd-managebutton onclickxadmin.open(this.innerText,this.dataset.url) data-url{:admin_url(user/edit,[id$vo[id]])} typebutton classlayui-btn编辑/buttonbutton data-url{:admin_url(user/del,[id$vo[id]])} typebutton classlayui-btn layui-btn-danger delete-btn删除/button/td/tr{/volist}/tbody/table/divdiv classlayui-card-body {$datalist-render()|raw}/div/div
/div{/block}{block namefoot}
script
(function(){$(.layui-table).on(click,.delete-btn,function(){var obj this;layer.confirm(确认要删除吗,function(index){//发异步删除数据console.log(obj.dataset)var index layer.load()$.ajax({type:post,url:obj.dataset.url,success:function(data){layer.close(index)layer.alert(data.msg||服务器出现错误,{icon:data.err_code 200?6:5,end:function(){if(data.err_code 200){$($(obj).parents(tr)[0]).remove();}}});}})});});
})();//不添加这个无法显示下拉列表
layui.use(form, function () {})
layui.use([form,layer],function () {$(#input_excel_data).click(function () {// console.log(点击导入了);// layer.msg(点击导入了);layer.open({type: 1,area: [500px, 360px],title: 导入excel文件,content:$(#file_upload_div),});});$(#upload_file).click(function () {//上传文档// var data new FormData;// data.append(file,my_file);// data.append(name,my_file.name);var formData new FormData($(#uploadForm)[0]);$.ajax({type:post,url:user/input_excel_data,contentType:false,processData:false,data:formData,success:function (data) {console.log(data);// layer.msg(导入成功);layer.alert(data.msg,{icon:data.err_code 200?6:5,end:function(){if(data.err_code 200){// 获得frame索引var index parent.layer.getFrameIndex(window.name);//关闭当前frameparent.layer.close(index);parent.location.reload();}}});},error:function(){layer.close(index);layer.alert(服务器出现错误)}});})
});/script
{/block}
接下来我们看一看Tp6后台的代码
这是控制器代码需要在控制器中添加引入
use PhpOffice\PhpSpreadsheet\IOFactory; /*** 导入excel文档数据* return \think\response\Json*/function input_excel_data(){$file request()-file(file);if (!$file) {print_r(请选择需要导入的文件);die;}// 加载文件$spreadsheet IOFactory::load($file-getRealPath());$sheet $spreadsheet-getActiveSheet();// 处理文件数据$data [];foreach ($sheet-getRowIterator() as $row) {$rowIndex $row-getRowIndex();// 不读取第一行 标题if ($rowIndex 1) {continue;}$cellIterator $row-getCellIterator();$row [];foreach ($cellIterator as $cell) {$row[] $cell-getValue();}$data[] $row;}// 数据入库处理print_r($data);die;return success_json(导入数据);}
需要添加路由
//上传文档导入excel文档数据
Route::post(productImport, ProductOrder/importExcel);