天天看點

laravel-excel導出并寫入圖檔

laravel-excel官方文檔位址

<?php

namespace App\Exports;

use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Events\AfterSheet;

class ApplicationExport implements FromArray, WithEvents, WithHeadings
{
	protected $array;

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

	/**
	 * @return array
	 */
	public function array(): array
	{
		return $this->array;
	}

	/**
	 * @return array
	 */
	public function headings(): array
	{
		return [
			'類型',
			'應用',
			'顔色',
			'數量',
			'圖檔',
			'送出日期'
		];
	}

	public function registerEvents(): array
	{
		return [AfterSheet::class => function (AfterSheet $event) {
			$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
			$drawing->setName('圖檔');
			$drawing->setDescription('圖檔');
			$drawing->setCoordinates("L2");
			$drawing->setPath($this->array[0]['image']);
			$drawing->setWidth(80);
			$drawing->setWorksheet($event->sheet->getDelegate());
		}];
	}
}