问题描述
我正在使用VBA ServerXMLHTTP https request with self signed certificate与Laravel创建excel文件。我需要将页面方向设置为landscape
,但是我在官方文档中找不到解决方案。顺便说一下,我正在使用Blade创建Excel文件,这是我的代码。
class ExampleExcel implements FromView,WithEvents {
public function view(): View {
return view('excel.main');
}
public function registerEvents(): array {
return [
AfterSheet::class => function(AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true);
},];
}
}
谢谢!
解决方法
您可以使用beforeSheet事件获取电子表格对象,然后在事件中可以设置方向。
public static function beforeSheet(BeforeSheet $event)
{
$event->sheet->getActiveSheet()->getPageSetup()
->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE);
}
您可以在https://docs.laravel-excel.com/3.0/exports/extending.html
上了解有关事件的更多信息。 ,考虑像这样添加BeforeSheet
事件。
return [
BeforeSheet::class => function (BeforeSheet $event) {
$event->sheet
->getPageSetup()
->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE);
},];