tp6 实现excel 导入功能
在项目根目录安装
composer require phpoffice/phpspreadsheet
我们看一下郊果图,如下
点击导入excel表格数据

出现弹窗选择文件,控制台打开输出文档内容
前端layui代码
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 name="public/layout"}
{block name="content"}
头像 手机号 昵称 性别 状态 创建时间 操作 {volist name="datalist" id="vo"}
{$vo['phone']} {$vo['nickname']} {$vo['sex']} {$vo['enable']} {$vo['create_time']} {/volist}
{$datalist->render()|raw}
{/block}{block name="foot"}
{/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');
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
