![](/img/trans.png)
[英]laravel-excel not working to export xls file using blade with image
[英]Export Laravel excel Image failed
尝试通过 laravel excel 导出我的 daanswerdata。 https://docs.laravel-excel.com/3.1/getting-started/-这是我用来参考的文档。 一开始它运行成功,但是当我打开导出的文件时,它会导出图像的路径,而不是导出实际的图像。 有没有办法导出图像(png文件)?
这是我的代码:
1.导出.php
<?php
namespace App\Exports;
use App\Models\signature;
use Maatwebsite\Excel\Concerns\FromCollection;
//frow laravel excel drawing(image export)
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithColumnWidths;
class SignatureExport implements FromCollection, WithHeadings, WithColumnWidths
{
/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
return signature::all();
}
public function drawings()
{
$drawing = new Drawing();
$drawing->setName('signature');
$drawing->setDescription('This is my signatuer');
$drawing->setPath(public_path('/uploads/signatures'));
$drawing->setHeight(90);
$drawing->setCoordinates('D1');
return $drawing;
}
public function headings(): array
{
return [
'id',
'name',
'description',
'signature',
'created_at',
'updated_at',
];
}
public function columnWidths(): array
{
return [
'A' => 30,
'B' => 30,
'C' => 30,
'D' => 30,
'E' => 30,
];
}
}
2.出口控制器
public function exportexcel()
{
return Excel::download(new SignatureExport, 'signaturelist.xlsx');
}
我想念什么吗? 任何答案表示赞赏。
用被接受的答案解决了问题。 但是出现了新问题
<?php
namespace App\Exports;
use App\Models\signature;
use Maatwebsite\Excel\Concerns\FromCollection;
//frow laravel excel drawing(image export)
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
use Maatwebsite\Excel\Concerns\WithDrawings;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithColumnWidths;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
class SignatureExport implements FromCollection, WithHeadings, WithColumnWidths, WithDrawings
{
/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
return signature::all();
}
public function drawings()
{
$drawing = new Drawing();
$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
$drawing->setName('signature');
$drawing->setDescription('This is my signatuer');
$drawing->setPath(public_path('/uploads/signatures/62ac8a575af1a.png'));
$drawing->setHeight(90);
$drawing->setCoordinates('D1');
return $drawing;
}
public function headings(): array
{
return [
'id',
'name',
'description',
'signature',
'created_at',
'updated_at',
];
}
public function columnWidths(): array
{
return [
'A' => 30,
'B' => 30,
'C' => 30,
'D' => 30,
'E' => 30,
];
}
}
我应该怎么做才能导出所有图像?
在您的 SignatureExport 类文件中,您缺少WithDrawings
实现
class SignatureExport implements WithDrawings //like this
所以你的SignatureExport
类应该是这样的
class SignatureExport implements FromCollection, WithHeadings, WithColumnWidths, WithDrawings
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
这个导入只是为了实例$drawing = new Drawing();
目的。 要使导出文件正常工作,您需要添加withDrawing
关注点,例如添加WithHeadings
和其他
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.