首先下载并且引入PHPExcel
实例化PHPExcel
$excel = new \PHPExcel();
对表格进行一些设置
设置字体
// 设置字体
$excel->getDefaultStyle()->getFont()->setName('宋体');
设置当前工作表及索引
$excel->setActiveSheetIndex(0);
// 如果新建工作表,例如循环
foreach ($data as $key => $value) {
if ($key >= 1) {
$excel->createSheet();
}
$excel->setActiveSheetIndex($key);
}
$objActSheet = $excel->getActiveSheet();
设置行高
// 设置行高
$objActSheet->getDefaultRowDimension()->setRowHeight(30);
设置工作表名称
$objActSheet->setTitle('name');
设置列宽
$objActSheet->getColumnDimension('A')->setWidth(10);
$objActSheet->getColumnDimension('B')->setWidth(30);
$objActSheet->getColumnDimension('C')->setWidth(12);
$objActSheet->getColumnDimension('D')->setWidth(15);
$objActSheet->getColumnDimension('E')->setWidth(12);
$objActSheet->getColumnDimension('F')->setWidth(12);
$objActSheet->getColumnDimension('G')->setWidth(12);
$objActSheet->getColumnDimension('H')->setWidth(12);
设置文字水平居中
// 设置水平居中
$objActSheet->getStyle('A1:H1')->getAlignment()->setHorizontal('center');
合并单元格并设置内容
// 设置内容 将A1至H1合并,并且设置内容为发货清单。设置字体18号加粗
$objActSheet->mergeCells('A1:H1')->setCellValue('A1', '发货清单')->getStyle('A1')->getFont()->setSize(18)->setBold(true);
设置文字垂直居中
// 设置垂直居中
$objActSheet->getStyle('A1:H10')->getAlignment()->setVertical('center');
设置边框
// 设置边框 将A1-H10设置全部边框
$styleThinBlackBorderOutline = [
'borders' => [
'allborders' => [ // //设置全部边框
'style' => 'thin' //粗的是thick
]
]
];
$objActSheet->getStyle('A1:H10')->applyFromArray($styleThinBlackBorderOutline);
下载Excel
// 文件名称
$fileName = 'filename';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $fileName . '.xlsx"');
header('Cache-Control: max-age=0');
// 用户下载excel
$objWriter = \PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$objWriter->save('php://output');
exit();