CI 用PHPExcel导入文件

1 篇文章 0 订阅

PHP 导入 Excel文件

确保你的框架加载好了PHPExcel插件,对下方$data变量中的键名进行修改然后,直接使用下边代码即可。

后台php接收处理

	public function import(){
        //判断上传文件存在值
        if(!empty($_FILES)){
            $filename = $_FILES['file']['name'];//被上传文件的名称
            $filetype = $_FILES["file"]["type"];//被上传文件的类型
            $filesize = $_FILES["file"]["size"];// 被上传文件的大小,以字节计
            $filetmp = $_FILES["file"]["tmp_name"];//存储在服务器的文件的临时副本的名称
            $fileerror = $_FILES["file"]["error"];//由文件上传导致的错误代码
            //判断是否上传成功
            if($fileerror==0){
                //判断是否是excel表格
                if($filetype=="application/vnd.ms-excel" || $filetype=="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"){
                    /*设置保存路径*/
                    $filePath = 'uploads/excel/';
                    $str = "";
                    /*加载PHPExcel*/
                    $this->load->library('PHPExcel.php');
                    $this->load->library('PHPExcel/IOFactory.php');
                    $time=date("YmdHis");
                    //获取上传文件的扩展名
                    $extend=strrchr ($filename,'.');
                    //上传后的文件名
                    $name=$time.$extend;
                    //上传后的文件名地址
                    $uploadfile=$filePath.$name;
                    //移动文件到指定目录
                    $result=move_uploaded_file($filetmp,$uploadfile);
                    //如果上传文件成功,就执行导入excel操作
                    if($result){
                        $inputFileType = IOFactory::identify($uploadfile);//确定输入文件的格式
                        $objReader = IOFactory::createReader($inputFileType);//穿件相对应的阅读器
                        $objPHPExcel = $objReader->load($uploadfile);          //加载要读取的文件
                        $sheet = $objPHPExcel->getSheet();                    //得到当前活动sheet
                        $objWorksheet = $objPHPExcel->getActiveSheet();
                        $highestRow = $objWorksheet->getHighestRow(); //取得总行数
                        $highestColumn = $objWorksheet->getHighestColumn();//取得总列数
                        $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数
                        
                        for ($row = 2;$row <= $highestRow;$row++){
                            $arr=array();
                            //注意highestColumnIndex的列数索引从0开始
                            for ($col = 0;$col < $highestColumnIndex;$col++){
                                $arr[$col] =$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
                            }
                            $data=array(
                            	//根据Excel有几列数据
                                '键名1'=>$arr['0'],
                                '键名2'=>$arr['1'],
                                '键名3'=>$arr['2'],
                            );
                                /**
                                 * TODO 可以执行数据库流程
                                 */
                        }
                        //可以var_dump查看当前变量
                        //var_dump($data);die;
                        unlink($uploadfile);  //删除上传的excel文件(也可以保留)
                    }
                }else{
                    $data = [ 'error'=>307,'msg'=>'上传文件非cvs/excel格式,请重新上传'];
                    return $data;
                }
            }else{
                $data = [ 'error'=>307,'msg'=>'上传失败,请稍后重试'];
                return $data;
            }
        }else{
            $data = [ 'error'=>307,'msg'=>'上传失败,请稍后重试'];
            return $data;
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值