tp5导入excel

1.上代码
<?php
namespace app\manage\controller;
use think\Controller;
use think\Request;
use think\Cookie;
use think\Session;
use think\Db;
use org\util\ExcelToArrary ;
use app\manage\controller\Base;
class Customer extends Base
{
//导入excel接口,将数据放入缓存中
    public function do_upload(Request $request){


        $file=request()->file("file");

        $info=$file->move(ROOT_PATH.'public'.DS . 'uploads'.DS."file");

        $file_name="";
        if($info){
            $file_name = $info->getSaveName();
        }else{
            $this->error("错误,未获取到文件信息");
        }

        //引入文件
        \think\Loader::import('PHPExcel.PHPExcel');
        $objPHPExcel = new \PHPExcel();

        $filename = ROOT_PATH.'public'.DS . 'uploads'.DS ."file".DS.$file_name;
        $filename=iconv('GB2312','UTF-8',$filename);

        if(is_file($filename)==false){
            $this->error("未发现文件!");
        }

        $extension = strtolower( pathinfo($filename, PATHINFO_EXTENSION) );

        \think\Loader::import('PHPExcel.IOFactory.PHPExcel_IOFactory');


        //使用 PHPExcel_IOFactory 来鉴别文件应该使用哪一个读取类
        $inputFileType = \PHPExcel_IOFactory::identify($filename);
        $objReader = \PHPExcel_IOFactory::createReader($inputFileType);
        //只设为读取,加快读取速度
        $objReader->setReadDataOnly(true);
        $objExcel = $objReader->load($filename);


        $sheet = $objExcel->getSheet(0);
        $highestRow = $sheet->getHighestRow();
        // 取得总列数
        $highestColumn = $sheet->getHighestColumn();
        //循环读取excel文件,读取一条,插入一条
        $excel_array=array();
        //从第一行开始读取数据
        for($j=1;$j<=$highestRow;$j++){
            //从A列读取数据
            for($k='A';$k<=$highestColumn;$k++){
                // 读取单元格

                $excel_array[$j][]=$objExcel->getActiveSheet()->getCell($k.$j)->getFormattedValue();
            }
        }

        unset($excel_array[1]);
//        echo "<pre>";print_r($excel_array);die();

        foreach ($excel_array as $k=>$v){
             $res = Db::name("customer")->where('company','=',$v[0])->find();
             if(!$res) {
                 $data['company'] = $v[0];
                 // $data['company_abstract'] = $v[1];
                 $data['contact_name'] = $v[1];
                 $data['contact'] = $v[2];
                 $data['address'] = $v[3];
                 $data['create_time'] = time();
                 $customer_id = Db::name("customer")->insertGetId($data);
                 $data_contact['name'] = $v[1];
                 $data_contact['mobile'] = $v[2];
                 $data_contact['create_time'] = time();
                 $data_contact['customer_id'] = $customer_id;
                 Db::name("contact")->insert($data_contact);
             }
        }

        $msg=[
            'code'=>200,
            'msg'=>"成功导入数据!",
        ];
        return json($msg);
    }
}
2.1 前端代码-js部分
 var form=layui.form;
        var upload=layui.upload;

        upload.render({ //允许上传的文件后缀
            elem: '#myfile'
            ,url: "{:url('customer/do_upload')}"
            ,accept: 'file' //普通文件
            ,exts: 'xls|excel|xlsx'
            ,done: function(res){
                if(res.code===200){
                    layer.msg('数据导入成功!', {
                        offset: '15px'
                        ,icon: 1
                        ,time: 1000
                    }, function(){
                        location.href = "{:url('manage/customer/index')}";
                    });
                }else{
                    layer.msg('操作失败',{icon:5});
                }
            }
        });

        form.on('submit(formsub)',function(data){
            layer.msg('导入数据具体详情未协商确认,待确认后处理');
            return false;
        })
2.2 前端代码-htm部分
 <form  class="layui-form" method="post" action="" style="float: left">
                        <div class="layui-input-inline">
                            <div class="layui-upload">
                                <button type="button" name="myfile" class="layui-btn layui-btn-danger" id="myfile"><i class="layui-icon"></i>excel批量导入数据</button>
                            </div>
                        </div>
                </form>
3.phpexcel库文件位置

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值