先貼代碼
public function excel_table_info(){
$res = $this->_excel->excel_table_info(); //需導出的數據
if($res){
$spreadsheet = new Spreadsheet(); //new一個對象(適合單身的我。。。)
//說明以下內容只是excel第一個sheet頁的屬性設置
$builder = $spreadsheet->setActiveSheetIndex(0);
//定義標籤欄,
$builder->setCellValue('A1', '表名');
$builder->setCellValue('B1', '資源名稱');
$builder->setCellValue('C1', '來源部門');
$builder->setCellValue('E1', '主題域');
$builder->setCellValue('F1', '子域');
//建議在數據表或者公共函數中定義標籤欄編號和名稱,foreach循環定義
// foreach ($data as $v) {
// $builder->setCellValue($v['key'], $v['name']);
// }
//設置A欄數據內容寬度自適應(這個有問題,我同時設置多欄時,不好使)
$builder->getColumnDimension( 'A')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(130); //設置寬度
//excel的具體數據,第一行爲標題,數據從第二行開始
foreach ($res as $key=>$val) {
$key = $key + 2;
$spreadsheet->getActiveSheet()
->setCellValue('A'.$key, $val['table_name'])
->setCellValue('B'.$key, $val['zymc'])
->setCellValue('C'.$key, $val['lybm'])
->setCellValue('D'.$key, $val['zty'])
->setCellValue('E'.$key, $val['zy']);
// ->setCellValue('E'.$key, 1); //設置默認值
}
//定義sheet頁名稱
$spreadsheet->getActiveSheet()->setTitle('sheet頁名稱');
//定義導出的excel文件名
$filename = '公安數據.xlsx';
//當導出的excel有多個sheet頁,默認顯示第一頁
$spreadsheet->setActiveSheetIndex(0);
//後面的是默認的內容,能不能改,怎麼改 還不清楚
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
//下載文檔
$writer->save('php://output');
}
}
先這樣,後面瞭解更多,再來新修改!求大佬指教!!!