广州小程序开发

thinkphp5.1 导入Excel 插入数据库

作者:广州小程序开发 时间:2018-07-25 23:13
thinkphp5.1导入Excel ,将下载的PHPExcel放到 vendor目录 这里phpexcel可以通过明名空间引入 ,这里我就
直接vendor   include_once了
 
前端代码 
    <form class="layui-form layui-form-pane" action="daoru" enctype="multipart/form-data" method="post" onsubmit="return sb1();">
        <div class="layui-form-item">
            <label class="layui-form-label">所属用户组</label>
            <div class="layui-input-4">
                <select name="tid" lay-verify="required">
                    <option value="">请选择用户组</option>
                    {volist name="quest_type" id="vo"}
                    <option value="{$vo.id}">{$vo.quest_type_name}</option>
                    {/volist}
                </select>
            </div>
        </div>
 
 
        <div class="layui-form-item">
            <label class="layui-form-label">文件</label>
 
            <div class="layui-input-block">
 
 
                    <input id="adBtn1" name="file" type="file"  style="height:55px;width:150px;"/>仅允许导入“xls”或“xlsx”格式文件!<br/>
 
            </div>
        </div>
 
 
        <div class="layui-form-item">
            <div class="layui-input-block">
                <button type="submit" class="layui-btn">提交</button>
                <a href="{:url('index')}" class="layui-btn layui-btn-primary">{:lang('back')}</a>
            </div>
        </div>
    </form>
thinkphp5.1引入表格
thinkphp后台接收代码
 
public function daoru(){
 
        $tid = input('post.tid');
        $file = request()->file('file');
   
        $info = $file->validate(['ext' => 'xlsx,xls'])->move('uploads');
    
        //数据为空返回错误
        if(empty($info)){
            $output['status'] = false;
            $output['info'] = '导入数据失败~';
            var_dump($output);
        }
 
        //获取文件名
        $exclePath = $info->getSaveName();
        //var_dump($exclePath);die;
        //上传文件的地址
        $filename = $_SERVER['DOCUMENT_ROOT']. '/uploads/' . $exclePath;
      // var_dump($filename);die;
        //判断截取文件
        $extension = strtolower( pathinfo($filename, PATHINFO_EXTENSION) );
        include_once  '/目录/vendor/PHPExcel/Classes/PHPExcel.php';
        //区分上传文件格式
        if($extension == 'xlsx') {
            //引入PHPExcel类
 
            $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
         //  var_dump($objReader);die;
            $objPHPExcel = $objReader->load($filename, $encode = 'utf-8');
        }else if($extension == 'xls'){
           
            $objReader =\PHPExcel_IOFactory::createReader('Excel5');
            $objPHPExcel = $objReader->load($filename, $encode = 'utf-8');
        }
 
        $excel_array = $objPHPExcel->getsheet(0)->toArray();   //转换为数组格式
        array_shift($excel_array);
        array_shift($excel_array);
 
        $res = [];
        foreach($excel_array as $k=>$v) {
          
            $res[$k]['quiz']     = $v[1];
            $res[$k]['options']  = $v[2];
            $res[$k]['answer']    = $v[3];
            $res[$k]['desdescription']   = $v[4];
            $res[$k]['type'] = $v[5];
            $res[$k]['tid'] = $tid;
            
        }
 
       // dump($res);
       // exit;
        db('questions')->insertAll($res); //批量插入数据
        echo '导入数据成功~';
    }
由于thinkphp5.1已经去掉了vendor方法 ,所以我这里直接用include_once方法引入Excel
 
本来来源:广州山水居科技 ,专注小程序定制开发,品牌网站建设
 

上一篇:mysql 存储过程
下一篇:thinkphp5 - 对接人脸识别对别接口

您的疑惑,我们来解答

多年来我们为上百家企业提供了网站建设服务

感受专业服务,从来电咨询开始
广州:18814374480深圳:13480275394
在线咨询