在做一个项目的时候,客户需要将所有内容都显示出来,但是laravel的导出excel的列宽是自动的,而且在网上找的代码发现没用,不管使用setautosize还是setwidth,都不生效,没办法,最后自己爬源码,发现其实里面已经有这个方法了,只是没怎么用过而已。
不多说,上代码。
Excel::create($finename, function($excel) use ($cellData){
$excel->sheet('sheet', function($sheet) use($cellData){
$sheet->setWidth('A',20);//设置列宽
$sheet->mergeCells('A1:A2');//合并单元格
$sheet->cell('A1', function ($cells)use($titlecolor){
$cells->setAlignment('center');//水平居中
$cells->setValignment('center');//垂直居中
$cells->setBackground('#cccccc');//设置单元格背景
$cells->setValue('订单详情');//设置单元格内容
});
});
})->export('xls');
这些源码都在
vendor\maatwebsite\excel\src\Maatwebsite\Excel\Writers\CellWriter.php
里面找到的。