>  기사  >  백엔드 개발  >  TP5(layui) 엑셀 가져오기

TP5(layui) 엑셀 가져오기

藏色散人
藏色散人앞으로
2019-07-23 14:29:414712검색

1.Composer는 PHPExcel을 설치합니다

composer를 다운로드하여 설치합니다

두 번째로 cmd를 프로젝트 루트 디렉터리로 전환하고 다음 명령을 실행합니다.

composer require phpoffice/phpexcel

참고:

1 OpenSSL 등을 실행할 때 오류가 발생할 수 있습니다. php.ini로 이동하여 확장자를 활성화하고 세미콜론

2을 제거하세요. 이는 phpstudy의 nts 버전을 로컬에서 사용하기 때문입니다. 이번 버전은 apache와 nginx를 모두 지원하는 특별한 버전이므로 로컬 가상 환경에서 개발 및 테스트에 사용되는 PHP 버전이므로 일반 버전으로 전환하여 명령어를 실행하여 설치하셔야 합니다

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.controller

  /**
     * 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;);
    }

위 내용은 TP5(layui) 엑셀 가져오기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제