excel - PHPSpreadsheet 无法设置工作表边距
问题描述
嗨,我对这个插件有一点问题,这是出错的代码
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);
});
这是错误
传递给 PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::setPageMargins() 的参数 1 必须是 PhpOffice\PhpSpreadsheet\Worksheet\PageMargins 的实例,给定浮点数
我只是按照这个文档https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#page-margins和 using maatwebsite\Excel
,顺便说一下我使用的是 Laravel 5.7。
问题是如何设置边距?因为我认为文档是错误的,请帮忙
解决方案
我相信你应该这样做:
// 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
东西)。
推荐阅读
- javascript - 为什么鼠标在 JavaScript 中会随着偏移量反弹到顶部?
- python - 如何使用变量命名函数?
- python - 如何将 Peewee ORM 放在一个类中?
- django - 同一 URL 上的 Django DetailView 和 FormView,如何处理表单验证错误?
- ios - 如何通过 SwiftUI 中的代码显示 contextMenu
- r - 根据变量值对列表中的行进行子集
- python - 在 numpy 数组中查找多次出现的第一个元素
- php - 如何为我在 php 中使用 while 循环显示的每个图像添加不同的 CSS 设计
- javascript - 为什么这不异步运行(因为里面有 Promise)?
- javascript - 从 0xRRGGBBAA 获取 rgba 值