//获取导出数据 $data
$data = [
[
'id' => 1,
'name' => '张三',
'status' => 1,
],
];
// 实例化PHPExcel类
$objPHPExcel = new \PHPExcel();
// 激活当前的sheet表
$objPHPExcel->setActiveSheetIndex(0);
//5.设置表格头(即excel表格的第一行)
$objPHPExcel->setActiveSheetIndex(0)
->mergeCells('A1:A2') //合并单元格,不需要合并单元格忽略
->mergeCells('B1:B2')
->mergeCells('C1:C2')
->setCellValue('A1', 'id') //设置表头值
->setCellValue('B1', '姓名')
->setCellValue('C1', '状态')
//统一设置水平居中、垂直居中
$objPHPExcel->getDefaultStyle()
->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER)
->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
//统一设置行高
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20);
//统一设置列宽
$objPHPExcel->getActiveSheet()->getDefaultColumnDimension()->setWidth(15);
// 循环刚取出来的数组,将数据逐一添加到excel表格。
for ($i = 0; $i < count($list); $i++) {
$objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 3), $list[$i]['id']); //这里表头占了2行,所以是$i+3,如果表头占1行是$i+1
$objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 3), $list[$i]['name']);
$objPHPExcel->getActiveSheet()->setCellValue('C' . ($i + 3), $list[$i]['status'] == 1 ? "正常" : "停用");
}
// 设置Excel名称
$filename = '人员表_' . date('YmdHis', time()) . ".xlsx";
// 设置表格的sheet名称
$objPHPExcel->getActiveSheet()->setTitle('人员表');
// 保存本地文件
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(UPLOAD_TEMP_PATH . "/" . $filename);
// 文件地址
$filePath = get_image_url(str_replace(ATTACHMENT_PATH, "", UPLOAD_TEMP_PATH . "/" . $filename));
return json(message("操作成功", true, $filePath, 0));
phpExcel 合并单元格 居中对齐
于 2023-05-25 17:18:46 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)