thinkPHP5实现excel表格数据导入功能

excel的导入导出功能还是经常能用到的,这里是基于thinkphp5框架搞的一个excel导入功能,使用到了PHPExcel这个类库,提供一个思路,并没有全部代码,了解思路就行,excel表格格式如下
thinkPHP5实现excel表格数据导入功能_第1张图片
具体代码如下

public function post(){
        if($this->request->isPost()){
            vendor("PHPExcel.PHPExcel");//导入PHPExcel.php
            $excel=$this->request->file("excel");
            if($excel == null){
                message("请先上传excel",'','error');
            }
            $path =   'uploads/' ;
            $info=$excel->move($path);//文件上传到项目目录
            $file_url=$info->getPathName();//这里获取到的是路径及文件名
            $file_name = $file_url;//文件名
            $extension = cmf_get_file_extension($file_name);//文件扩展名,这个方法自行处理,获取到文件后缀即可
            if($extension == 'xlsx'){
                $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
                $objPHPExcel = $objReader->load($file_url, $encode = 'utf-8');  //加载文件内容,编码utf-8
            }else if($extension == 'xls'){
                $objReader =\PHPExcel_IOFactory::createReader('Excel5');
                $objPHPExcel = $objReader->load($file_url, $encode = 'utf-8');  //加载文件内容,编码utf-8
            }else{
                message("请上传Excel格式的文件",'','error');
            }
            $excel_array=$objPHPExcel->getsheet(0)->toArray();   //转换为数组格式
            array_shift($excel_array);  //删除第一个数组(标题);
            $data = [];
            foreach($excel_array as $k=>$v) {
                $data[$k]['name'] = $v[0];
                $data[$k]['phone'] = $v[1];
                $data[$k]['address'] = $v[2];//因为表格只有三列,所有到这里就可以了,如果有多列,则继续往下增加即可
            }
            unset($info);//释放资源
            unlink($file_url);//因为之前使用的是上传的文件进行操作,这里把它删除,看个人情况具体处理
            if(Db::name('message')->insertAll($data)){
                message("导入成功",'reload','success');
            } else {
                message("导入失败",'','error');
            }
        }
        return $this->fetch();
    }

基本上到这里都是成功了,如果有问题具体看提示进行处理
PHPExcel类库原本想上传到CSDN给大家下载的,但是现在资源初始上传就默认要5积分了,还不能修改,有点坑,所以大家还是百度去找一个把,都是一样的,也可以留个邮箱,这边发过去

你可能感兴趣的:(PHP技术)