咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

站点名字一样的需要合并在一起,样式图如下


1.先数据填充 后修改样式

$sheet->rows($data1);

2.首先拿到重复站点的个数,放进一个数组里面 最后结果 $num[3,2];

foreach ($response1['data'] as $kk => $value) { if ($kk < count($response1['data']) - 1) { if ($value->site_name == $response1['data'][$kk + 1]->site_name) { $temp += 1; } else { $num[] = $temp; $temp = 1; } }else{ $num[] = $temp; } } }

3.把需要合并的列放进一个数组

$cell =['A','B','C','D'];

4.开始合并

foreach($cell as $item){ $start =2; foreach($num as $k=>$v){ if($v !=1){ $end =$start+$v-1; $sheet->mergeCells($item.$start.':'.$item.$end); $start=$end +1; }else{ $start +=1; } } }

下面附上完整代码(php)


set_time_limit (0); Excel::create(uniqid(),function($excel) use ($data,$num){ $excel->sheet('sheet', function($sheet) use ($data){ $sheet->rows($data); $sheet->getStyle('A:T')->getAlignment()->setWrapText(TRUE); // 设置单元格宽度 $sheet->setWidth(array( 'A' => 10, 'B' => 20, 'C' => 20, 'D' => 20, 'E' => 20, 'F' => 20, 'G' => 20, 'H' => 20, 'I' => 20, )); // 设置单元格标题加粗居中 $sheet->cells('A1:T1', function($cells) { $cells->setFontWeight('bold'); $cells->setAlignment('center'); $cells->setValignment('center'); }); // 设置单元格居中 $sheet->cells('A:T', function($cells) { $cells->setAlignment('center'); $cells->setValignment('center'); }); }); $cell =['A','B','C','D']; foreach($cell as $item){ $start =2; foreach($num as $k=>$v){ if($v !=1){ $end =$start+$v-1; $sheet->mergeCells($item.$start.':'.$item.$end); $start=$end +1; }else{ $start +=1; } } } } }