Maison  >  Article  >  développement back-end  >  Importation Excel TP5 (layui)

Importation Excel TP5 (layui)

藏色散人
藏色散人avant
2019-07-23 14:29:414653parcourir

1.composer installe PHPExcel

Téléchargez et installez composer

Deuxièmement, cmd bascule vers le répertoire racine du projet et exécute la commande :

composer require phpoffice/phpexcel

Remarque :

1. Vous pouvez obtenir une erreur lors de l'exécution d'OpenSSL ou quelque chose comme ça. Accédez à php.ini et ouvrez l'extension extension=php_openssl.dll et supprimez le point-virgule

2. C'est toujours possible Il y a une erreur indiquant que le package correspondant est introuvable. C'est parce que j'utilise la version nts de phpstudy localement. Cette version est spéciale et prend en charge à la fois Apache et Nginx. la version PHP utilisée pour le développement et les tests de l'environnement virtuel local, elle ne peut donc pas être adaptée et doit être changée. La version normale est installée en exécutant la commande


2. 🎜>

<div class="layui-form-item" >
<label class="layui-form-label">导入专线</label>
<div class="layui-input-inline">
<div class="layui-upload">
<button type="button" name="myfile" class="layui-btn" id="myfile"><i class="layui-icon"></i>上传文件</button>
</div>
</div>
</div>
<script type="text/javascript">
    layui.use([&#39;form&#39;,&#39;upload&#39;],function(){
        var form=layui.form;
        var upload=layui.upload;
        upload.render({ //允许上传的文件后缀
            elem: &#39;#myfile&#39;
            ,url: "{:url(&#39;Logisticscompany/inserline&#39;)}"
            ,accept: &#39;file&#39; //普通文件
            ,exts: &#39;xls|excel|xlsx&#39; //只允许上传压缩文件
            ,done: function(res){
                if(res.code==1){
                    layer.msg(&#39;上传成功,已解析数据&#39;,{icon:6});
                    location.href="{:url(&#39;Logisticscompany/lists&#39;)}";
                }else{
                    layer.msg(&#39;解析失败&#39;,{icon:5});
                }
            }
        });
        form.on(&#39;submit(formsub)&#39;,function(data){
            layer.msg(&#39;导入数据具体详情未协商确认,待确认后处理&#39;);
            return false;
        })
    })
</script>

3.contrôleur

  /**
     * excel导入网点
     */
    public function  insert(){
        if(request() -> isPost())
        {
            vendor("PHPExcel.PHPExcel"); //方法一
            $objPHPExcel =new \PHPExcel();
            //获取表单上传文件
            $file = request()->file(&#39;file&#39;);
            $info = $file->validate([&#39;ext&#39; => &#39;xlsx,xls&#39;])->move(ROOT_PATH . &#39;public&#39;);  //上传验证后缀名,以及上传之后移动的地址  E:\wamp\www\bick\public
            if($info)
            {
                $exclePath = $info->getSaveName();  //获取文件名
                $file_name = ROOT_PATH . &#39;public&#39; . DS . $exclePath;//上传文件的地址
                $file_types = explode ( ".", $_FILES [&#39;file&#39;] [&#39;name&#39;] );
                $file_type = $file_types [count ( $file_types ) - 1];
                if($file_type==&#39;xls&#39;){
                    $objReader =\PHPExcel_IOFactory::createReader("Excel5");
                }
                else if($file_type==&#39;xlsx&#39;){
                    $objReader =\PHPExcel_IOFactory::createReader("Excel2007");
                }
                $obj_PHPExcel =$objReader->load($file_name, $encode = &#39;utf-8&#39;);  //加载文件内容,编码utf-8
                $excel_array=$obj_PHPExcel->getSheet(0)->toArray();   //转换为数组格式
                array_shift($excel_array);  //删除第一个数组(标题);
                $data = [];
                $i=0;
                foreach($excel_array as $k=>$v) {
                    $data[$k][&#39;viewName&#39;] = $v[0];
                    $data[$k][&#39;cityId&#39;] = $v[1];
                    $data[$k][&#39;stationAddress&#39;] = $v[2];
                    $data[$k][&#39;linkMan&#39;] = $v[3];
                    $data[$k][&#39;linkPhone&#39;] = $v[4];
                    $data[$k][&#39;longitude&#39;] = $v[5];
                    $data[$k][&#39;latitude&#39;] = $v[6];
                    $data[$k][&#39;userId&#39;] = $v[7];
                    $data[$k][&#39;remark&#39;] = $v[8];
                    $i++;
                }
                $re=    Db::name("htt_freightstation")->insertAll($data);
                if($re){
                    $msg=[
                        &#39;code&#39;=>1,
                        &#39;msg&#39;=>&#39;已获取信息&#39;,
                    ];
                    return json_encode($msg);
                }
                else{
                    $msg=[
                        &#39;code&#39;=>0,
                        &#39;msg&#39;=>&#39;获取信息失败&#39;,
                    ];
                    return json_encode($msg);
                }
            }else
            {
                echo $file->getError();
            }
        }
        return $this->fetch(&#39;lists&#39;);
    }

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer