php - Laravel Excel 如何在具有多张工作表的模板文件上插入图像
问题描述
版本
- PHP版本:7.4
- Laravel 版本:7.0
- Laravel Excel 包版本:3.1
描述
我想创建一个报表,获取第一个工作表的模板,在第一个工作表上插入图像,并插入更多不需要该图像的工作表。
我怎样才能:
- 使用模板创建报告的第一个工作表
- 在使用模板创建的工作表上插入图像
- 根据其他报告创建更多工作表
附加信息
我的导出类示例能够基于模板创建第一个工作表。此外,它会创建额外的工作表,但图像不会插入到第一个工作表中。
这是当前的代码。
<?php
class ReportsWithInfoPageExport implements WithEvents, WithDrawings, WithMultipleSheets
{
use Exportable;
protected $data;
protected $jobDetails;
public function __construct($data,$jobDetails)
{
$this->data = $data;
$this->jobDetails = $jobDetails;
}
/**
* @return array
*/
public function sheets(): array
{
$sheets = [];
foreach ($this->data as $block => $data) {
$sheets[] = new MultipleReports($block, $data);
}
return $sheets;
}
/**
* @return Array
*/
public function registerEvents(): array
{
return [
BeforeExport::class => function(BeforeExport $event){
$event->writer->reopen(new \Maatwebsite\Excel\Files\LocalTemporaryFile(storage_path('exports/report-front-page.xlsx')),Excel::XLSX);
$event->writer->getSheetByIndex(0);
$event->getWriter()->getSheetByIndex(0)->setCellValue('C2', 'Some Information');
$event->getWriter()->getSheetByIndex(0)->setCellValue('G4', 'Some Information');
return $event->getWriter()->getSheetByIndex(0);
}
];
}
public function drawings()
{
$drawing = new Drawing();
$drawing->setName('Logo');
$drawing->setDescription('This is my logo');
$drawing->setPath(storage_path('/img/logo.jpg'));
$drawing->setHeight(50);
$drawing->setWidth(50);
$drawing->setCoordinates('A1');
return $drawing;
}
}
此代码基于模板创建工作表,创建许多工作表,但不会在第一个工作表上添加图像。
这可能是WithDrawings
不使用的问题WithEvents
,WithMultipleSheets
还是我错过了什么?
解决方案
推荐阅读
- java - 在 RecyclerView 的单个界面中使用多个 onClick 方法
- django - 值集的 django 模型字段
- go - 可以在生产中使用 golang pprof 而不影响性能吗?
- performance - 如何通过添加单元子句来逐步解决一系列 CP-SAT 问题来实现加速?
- linux - 条件动态链接
- javascript - 如何通过在 Laravel 中传递参数来使用 ajax 重新加载数据表?
- laravel - Laravel 不时冻结
- python - 如何在第一个 epoch 直接使用 map 函数生成的转换,而不是每个 epoch 都执行 map 函数?
- android-studio - 如何从 adb logcat 获取日志,就像在 Android Studio 的运行选项卡中一样?
- ruby-on-rails - Rails 6 - 命名空间中的嵌套资源问题