php excel获取合并单元格的内容,并自动向上获取第一个有值的单元格数据

获取合并单元格的数据

 

Yii::$enableIncludePath=false;
        Yii::import('application.extensions.PHPExcel.PHPExcel',1);
        
        if(!empty($_FILES['file']['tmp_name']))
        {
            
            $file=CUploadedFile::getInstanceByName('file');//获取上传的文件实例
            if($file->error > 0)
            {
                echo '<h2>上传文件出错,请重试</h2><a href="">点击返回</a>';
                Jii::app()->end();
            }
            if(!in_array($file->getExtensionName(),array('xls'))){
                echo '<h2>只能上传xls文件</h2><a href="">点击返回</a>';
                Jii::app()->end();
            }
            $size = 1024 * 1024 * Helper::p('upload_size', 5);
            if($file->size > $size)
            {
                echo '<h2>上传文件大小不能超过5M</h2><a href="">点击返回</a>';
                Jii::app()->end();
            }

            if(in_array($file->getExtensionName(),array('xls'))){
                $excelFile=$file->getTempName();//获取文件名
                //这里就是导入PHPExcel包了,要用的时候就加上如下这么两句
                Yii::$enableIncludePath=false;
                Yii::import('application.extensions.PHPExcel.PHPExcel',1);
                $phpexcel=new PHPExcel;
                $excelReader=PHPExcel_IOFactory::createReader('Excel5');
                $phpexcel=$excelReader->load($excelFile)->getSheet(0);//载入文件并获取第一个sheet
                Yii::$enableIncludePath=true;//及时的还原yii的自动加载模式
                $total_line=$phpexcel->getHighestRow();//总行数
                $total_column=$phpexcel->getHighestColumn();//总列数
                //var_dump($this->get_pos($phpexcel->getMergeCells()));die;
                //$phpexcel->unmergeCells('A5:A6');
                
                $rowArray=[];
                $participantArr = [];
                if($total_line>1){
                    for($row=5;$row<=$total_line;$row++){
                        $line=array();
                        $lineNoMerges = [];
                        $accountId = '';
                        for($column='A';$column<=$total_column;$column++){
                            $lineNoMerges[]=trim($phpexcel->getCell($column.$row)->getValue());

                            $lined = trim($phpexcel->getCell($column.$row)->getValue());

                            if(trim($phpexcel->getCell($column.$row)->getValue()) ==""){    //是值为空的合并单元格,更具需要判断,获取第一个有值的数据
                                for($k=$row-1;$k>=0;$k--){
                                    if(trim($phpexcel->getCell($column.$k)->getValue()) != ""){
                                        if($k==3 || $k==4){
                                            $lined='';
                                            break;
                                        }else{
                                            $lined=$phpexcel->getCell($column.$k)->getValue();
                                            break;
                                        }

                                    }
                                }
                            }
                            $line[]=$lined;

                        }
                        
                        $rowArray[]=$line;  //自动补全的值

                    }
                }
            }
        }

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值