直接上代码:
\Excel::create('excel文件名', function ( $excel ) use ( $data, $headName) {
$excel->sheet('设置sheet名称', function ( $sheet ) use ( $data, $headName ) {
//设置头部 合并单元格
$sheet->cell("A1", '设置表头');
$sheet->mergeCells('A1:I1');//从A1到I1合并单元格
//先设置头部
$letter = "A";
foreach($headerName as $name){
$sheet->cell("{$letter}2", $name);//设置单元格表头
$sheet->setWidth("{$letter}", 30);//设置单元格宽度
$letter++;//字母会依次递增ABCDE....
}
$sheetDataStart = 3;
$letter = "A";
foreach ($data as $p => $v) {
foreach($v as $val){
$sheet->cell("{$letter}{$sheetDataStart}", $v);//把一行依次填满
$letter++;
}
$sheetDataStart++;
}
$f = 'A1:I'.($models->count()+2);
$sheet->cells($f,function($cells) { //$f是范围。匿名函数设置左对齐
$cells->setAlignment('left');
});
});
})->download('xlsx');//如果通过http请求来访问的话,就会下载excel文件
//也可以将->download('xlsx')替换成->store('xls')->export('xls')
//这会在storage/export目录下生成你的excel文件