php 多表头excel导出
时间: 2023-08-15 14:08:44 浏览: 160
要实现 PHP 多表头 Excel 导出,可以使用 PHPExcel 库。下面是一个简单的示例代码:
```php
// 加载 PHPExcel 库
require_once 'PHPExcel/PHPExcel.php';
// 创建一个新的 Excel 对象
$objPHPExcel = new PHPExcel();
// 设置 Excel 属性
$objPHPExcel->getProperties()
->setCreator("Your Name")
->setLastModifiedBy("Your Name")
->setTitle("Multi-Header Excel Export")
->setSubject("Multi-Header Excel Export")
->setDescription("Multi-Header Excel Export");
// 设置表头
$header = array(
array('label' => 'Header 1', 'width' => 30),
array('label' => 'Header 2', 'width' => 30),
array('label' => 'Header 3', 'width' => 30),
array('label' => 'Header 4', 'width' => 30)
);
// 设置数据
$data = array(
array('data1', 'data2', 'data3', 'data4'),
array('data5', 'data6', 'data7', 'data8')
);
// 设置表格样式
$styleHeader = array(
'font' => array('bold' => true),
'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER),
'fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => 'EEEEEE'))
);
// 设置表头单元格样式
$styleHeaderCell = array(
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN
)
)
);
// 设置数据单元格样式
$styleDataCell = array(
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN
)
)
);
// 设置工作表
$objPHPExcel->setActiveSheetIndex(0);
$activeSheet = $objPHPExcel->getActiveSheet();
// 设置表头
$col = 'A';
foreach ($header as $h) {
$activeSheet->setCellValue($col . '1', $h['label']);
$activeSheet->getColumnDimension($col)->setWidth($h['width']);
$activeSheet->getStyle($col . '1')->applyFromArray($styleHeader);
$activeSheet->getStyle($col . '1')->applyFromArray($styleHeaderCell);
$col++;
}
// 设置数据
$row = 2;
foreach ($data as $d) {
$col = 'A';
foreach ($d as $value) {
$activeSheet->setCellValue($col . $row, $value);
$activeSheet->getStyle($col . $row)->applyFromArray($styleDataCell);
$col++;
}
$row++;
}
// 输出 Excel 文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="multi-header-export.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
```
这个示例代码中,我们先设置了一个表头和数据。然后,我们设置了一些样式,如表格样式、表头单元格样式和数据单元格样式。最后,我们设置了工作表并将表头和数据写入到工作表中。最终,我们输出 Excel 文件。
阅读全文