您现在的位置是: 网站首页>文章详情 文章详情

TP5(layui)excel导入

Heartless Wolf 1563874180 thinkphp 12746 收藏

简介 TP5(layui)excel导入

1.composer安装PHPExcel

下载安装composer

其次 cmd切换到项目根目录 运行命令:

composer require phpoffice/phpexcel

注意:

1.运行可能会报错OpenSSL之类的 去php.ini中开启extension=php_openssl.dll扩展,去掉分号

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(['form','upload'],function(){
        var form=layui.form;
        var upload=layui.upload;
        upload.render({ //允许上传的文件后缀
            elem: '#myfile'
            ,url: "{:url('Logisticscompany/inserline')}"
            ,accept: 'file' //普通文件
            ,exts: 'xls|excel|xlsx' //只允许上传压缩文件
            ,done: function(res){
                if(res.code==1){
                    layer.msg('上传成功,已解析数据',{icon:6});
                    location.href="{:url('Logisticscompany/lists')}";
                }else{
                    layer.msg('解析失败',{icon:5});
                }
            }
        });
        form.on('submit(formsub)',function(data){
            layer.msg('导入数据具体详情未协商确认,待确认后处理');
            return false;
        })
    })
</script>

3.controller


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


文章评论

    点击加载更多评论

我的名片

网名:Hello World

职业:PHP开发

现居:福建省-福州市

Email:565554856@qq.com

  • 图片信息

站点信息

  • 建站时间:2019-04-20
  • 文章总计:69条
  • 笔记总计:4条
  • 文章评论:0条
  • 笔记评论:0条
  • 当前访问IP:18.222.184.126