我想使用Laravel Excel导出结果,但是结果与我想要的不匹配。
我希望所有单元格都用文本包裹并有完整的边框。
这是我的代码:
class SdgsExportView2 implements FromView, WithTitle {
protected $id_perangkat_daerah;
function __construct($id_perangkat_daerah) {
$this->id_perangkat_daerah = $id_perangkat_daerah;
}
public function view(): View
{
$data_sdgs = DataSdgs::where('id_perangkat_daerah',$this->id_perangkat_daerah)
->with('indikator.target.sdgs')
->with('detail_data_sdgs.kegiatan.program.perangkat_daerah')
->get();
return view('template.exportMatrik2', [
'data_sdgs' => $data_sdgs
]);
}
public function registerEvents(): array
{
return [
AfterSheet::class => function(AfterSheet $event) {
$cellRange = 'A1:W100'; // All headers
$event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setSize(14);
$event->sheet->getDelegate()->getStyle($cellRange)->getAlignment()->setWrapText(true);
}
];
}
public function title() : string
{
return 'MATRIK 2';
}
}
我真的希望您的帮助
答案 0 :(得分:0)
我知道答案(在8个月后)有点晚,但是在代码中添加边框格式相对简单。
在事件函数AfterSheet::class => function(AfterSheet $event)
中,您需要添加以下代码:
$styleHeader = [
'borders' => [
'allBorders' => [
'borderStyle' => 'thin',
'color' => ['rgb' => '808080']
],
]
];
$event->sheet->getStyle("A1:C1")->applyFromArray($styleHeader);
然后用标题范围替换“ A1:C1”。