Laravel maatwebsite/excel 3.1 导出图片

创建UserExport

namespace App\Admin\Extensions\Exporter;

use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithDrawings;
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;

class UserExport implements FromArray, ShouldAutoSize, WithDrawings
{

    protected $invoices;

    protected $logo;

    public function __construct(array $invoices, array $logo)
    {
      $this->invoices = $invoices;
      $this->logo = $logo;
    }

    use Exportable;

    public function array(): array
    {
        return $this->invoices;
    }

    public function drawings()
    {
        $result = [];
        foreach ($this->logo as $k => $v) {
            $k += 2;
            ${'drawing' . $k} = new Drawing();
            ${'drawing' . $k}->setName('头像');
            ${'drawing' . $k}->setDescription('头像');
            //图片路径
            ${'drawing' . $k}->setPath(public_path($v));
            ${'drawing' . $k}->setHeight(50);
            //设置图片列
            ${'drawing' . $k}->setCoordinates('C' . $k);
            $result[] = ${'drawing' . $k};
        }
        return $result;
    }
}

控制器

class SendController extends Controller
{
    //
    public function index()
    {
        return (Excel::download(new UserExport([
            ['用户名' ,'年龄' ,'头像'],
            ['张三', 15, ''],
            ['李四', 17, ''],
            ['王五', 18, ''],
            ['赵六', 19, ''],
        ], [
            '1.jpg',
            '2.jpg',
            '3.jpg',
            '4.jpg',
        ]), '用户列表.xlsx'));
    }
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9

不是本地的图片怎么导出啊 比如七牛的

3年前 评论

@myaccountl 貌似只能本地的, :see_no_evil: 只能下载一遍了。。

3年前 评论
playmaker

导入图片呢?

2年前 评论

为啥我导出的图片不跟数据在同一行.图片自己占一行。。

2年前 评论
Ranger9527 1年前
Ranger9527 1年前
oceanjiayu 1年前
Ranger9527 1年前
oceanjiayu 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!