繁体   English   中英

导出 Laravel excel 图像失败

[英]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');

    }

我想念什么吗? 任何答案表示赞赏。


用被接受的答案解决了问题。 但是出现了新问题

而不是 3 张图片,只有 1 张图片成功导出只有1个


<?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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM