tp6 实现excel 导入功能

在项目根目录安装

composer require phpoffice/phpspreadsheet

我们看一下郊果图,如下

点击导入excel表格数据

 出现弹窗选择文件,控制台打开输出文档内容tp6 实现excel 导入功能_第1张图片

前端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"}
{if isset($params['nickname']) && !empty($params['nickname'])} {else /} {/if}
{if isset($params['phone'])} {else/} {/if}
{volist name="datalist" id="vo"} {/volist}
头像 手机号 昵称 性别 状态 创建时间 操作
{$vo['phone']} {$vo['nickname']} {$vo['sex']} {$vo['enable']} {$vo['create_time']}
{$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');

你可能感兴趣的:(excel,javascript,开发语言)