嗨,我对此插件有一点问题,这是导致错误的代码
Sheet::macro('setPageMargins', function (Sheet $sheet, float $top = 1, float $right = 0.75, float $bottom = 1, float $left = 0.75) {
$sheet->getDelegate()->getPageMargins()->setTop($top);
$sheet->getDelegate()->getPageMargins()->setRight($right);
$sheet->getDelegate()->getPageMargins()->setLeft($left);
$sheet->getDelegate()->getPageMargins()->setBottom($bottom);
});
这是错误
参数1传递给 PhpOffice \ PhpSpreadsheet \ Worksheet \ Worksheet :: setPageMargins()必须为 浮动的PhpOffice \ PhpSpreadsheet \ Worksheet \ PageMargins的实例 给
我只是通过使用Laravel 5.7来使用maatwebsite\Excel
来遵循本文档https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#page-margins。
问题是如何设置边距?因为我认为文档有误,请帮助
答案 0 :(得分:1)
我相信您应该这样做:
// Create a page margins object.
$pageMargins = new \PhpOffice\PhpSpreadsheet\Worksheet\PageMargins();
$pageMargins->setTop(1);
$pageMargins->setRight(0.75);
$pageMargins->setBottom(1);
$pageMargins->setLeft(0.75);
Sheet::macro('setPageMargins', function($sheet, $pageMargins));
根据代码,它显示为public function setPageMargins(PageMargins $pValue)
。
您的::macro
调用了setPageMargins
函数,尽管这种模式使我感到困惑(似乎有些Maatwebsite\Excel
东西)。