获取合并单元格的数据
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; //自动补全的值
}
}
}
}