先贴代码
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');
}
}
先这样,后面了解更多,再来新修改!求大佬指教!!!