PHPSpreadsheet не может установить поле листа - PullRequest
0 голосов
/ 07 января 2019

Привет У меня есть небольшая проблема с этим плагином, это код, который делает ошибку

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, float учитывая

и я просто следую этой документации https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#page-margins с использованием maatwebsite\Excel, кстати, я использую Laravel 5.7.

Вопрос в том, как установить маржу? потому что я думаю, что документация неверна, пожалуйста, помогите

1 Ответ

0 голосов
/ 09 января 2019

Я считаю, что вы должны делать:

// 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).

(https://github.com/PHPOffice/PhpSpreadsheet/blob/0e8fde9be6d3918ffe030bed0ba0297bfe330c4d/src/PhpSpreadsheet/Worksheet/Worksheet.php#L966)

Ваш ::macro вызывает функцию setPageMargins, хотя этот шаблон меня смущает (кажется, это какая-то вещь Maatwebsite\Excel).

...