/**
* 导出数据
* @param $filename 文件名
* @param $title 表头
* @param $data 数据
* @throws \PhpOffice\PhpSpreadsheet\Exception
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
*/
public function exportData($title,$data,$filename)
{
$cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');
$spreadsheet = new Spreadsheet();
$spreadsheet->setActiveSheetIndex(0);
$spreadsheet->getDefaultStyle()->getAlignment()->setVertical(Alignment::VERTICAL_CENTER); //水平居中
$spreadsheet->getDefaultStyle()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); //垂直居中
$sheet = $spreadsheet->getActiveSheet();
$sheet->getDefaultColumnDimension()->setWidth(20); //设置列宽
//表头长度
$title_count = count($title);
for($i=0 ; $i<$title_count ; $i++) {
$sheet->setCellValue($cellName[$i].'1',$title[$i]);
}
//n列数据
$column = $i;
//行下标
$index = 0;
foreach ($data as $row_index => $row_value) {
//写入excel第n行
$index = $row_index+2;
//列下标
$cell_index = 0;
foreach($row_value as $k => $v){
//设置第n行数据的A,B,C...列
// if(!empty($v)){
$sheet->setCellValue($cellName[$cell_index].$index,$v);
// }
$cell_index++;
}
}
//n行数据加1行表头
// $row = $index;
// // 设置垂直居中
// $spreadsheet->getActiveSheet()->getStyle("A1:".($cellName[$column-1]).$row)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
// // 设置水平居中
// $spreadsheet->getActiveSheet()->getStyle("A1:".($cellName[$column-1]).$row)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
header("Content-Disposition: attachment;filename=$filename.xlsx");
header('Content-Type: applicsation/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$writer = IOFactory::createWriter($spreadsheet,'Xlsx');
ob_end_clean();
$writer->save('php://output');
}
TP6与PhpSpreadsheet导出表格数据居中
最新推荐文章于 2024-01-10 19:39:16 发布