最终效果图:
代码:
php
public function export_data() {
$list = $this->get_list_organ();
$content = [];
$content[] = []; // 第2行不设置内容,设置为空
foreach ($list as $key => $value) {
$content[] = [$value['organ_name'], $value['class_name'], $value['num1'], $value['num2'], $value['num3'], $value['money2'], $value['money3']];
}
// 文件存储目录
$path = $_SERVER['DOCUMENT_ROOT'] . '/statistics/';
$fileName = 'data_'.date('YmdHis').'.xlsx';
if(!file_exists($path)){
mkdir($path, 0777);
}
$excel_config = [
'path' => $path // xlsx文件保存路径
];
$excel = new \Vtiful\Kernel\Excel($excel_config);
$fileObject = $excel->fileName($fileName, 'sheet1');
// // 设置样式
$fileHandle = $fileObject->getHandle();
$format = new \Vtiful\Kernel\Format($fileHandle);
$alignStyle = $format
->align(\Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_CENTER, \Vtiful\Kernel\Format::FORMAT_ALIGN_CENTER_ACROSS)
->toResource();
$boldStyle = $format
->bold() // 加粗
// ->wrap() // 文本换行
// ->background(0xFFB6C1) // 设置背景颜色 颜色常量和16进制数
->align(\Vtiful\Kernel\Format::FORMAT_ALIGN_CENTER, \Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_CENTER) // 文本居中
->toResource();
// fileName 会自动创建一个工作表,你可以自定义该工作表名称,工作表名称为可选参数
$fileObject
->header(['救助机构', '救助项目', '受理数量(次)', '完成救助数量(次)', '完成救助金额(元)'])
->mergeCells('A1:A2', '救助机构', $boldStyle)
->mergeCells('B1:B2', '救助项目', $boldStyle)
->mergeCells('C1:C2', '受理数量(次)', $boldStyle)
->mergeCells('D1:E1', '完成救助数量(次)', $boldStyle)
->mergeCells('D2:D2', '小计', $boldStyle)
->mergeCells('E2:E2', '其中异地户籍救助', $boldStyle)
->mergeCells('F1:G1', '完成救助金额(元)', $boldStyle)
->mergeCells('F2:F2', '小计', $boldStyle)
->mergeCells('G2:G2', '其中异地户籍救助金额', $boldStyle)
// ->defaultFormat($alignStyle)
->setRow('A1', 30)
->setRow('D2:D9999', 20) // 行宽
->setColumn('A:G', '20')
->data($content)
->output(); // 列宽
$file_dir = '/statistics/'.$fileName;
return $file_dir;
}