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 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 9

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

3年前 评论

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

3年前 评论
playmaker

导入图片呢?

2年前 评论

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

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

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