Current File : /home/tradevaly/text.tradevaly.com.bd/vendor/maatwebsite/excel/src/Jobs/CloseSheet.php |
<?php
namespace Maatwebsite\Excel\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Files\TemporaryFile;
use Maatwebsite\Excel\Writer;
class CloseSheet implements ShouldQueue
{
use Queueable, ProxyFailures;
/**
* @var object
*/
private $sheetExport;
/**
* @var string
*/
private $temporaryFile;
/**
* @var string
*/
private $writerType;
/**
* @var int
*/
private $sheetIndex;
/**
* @param object $sheetExport
* @param TemporaryFile $temporaryFile
* @param string $writerType
* @param int $sheetIndex
*/
public function __construct($sheetExport, TemporaryFile $temporaryFile, string $writerType, int $sheetIndex)
{
$this->sheetExport = $sheetExport;
$this->temporaryFile = $temporaryFile;
$this->writerType = $writerType;
$this->sheetIndex = $sheetIndex;
}
/**
* @param Writer $writer
*
* @throws \PhpOffice\PhpSpreadsheet\Exception
* @throws \PhpOffice\PhpSpreadsheet\Reader\Exception
*/
public function handle(Writer $writer)
{
$writer = $writer->reopen(
$this->temporaryFile,
$this->writerType
);
$sheet = $writer->getSheetByIndex($this->sheetIndex);
if ($this->sheetExport instanceof WithEvents) {
$sheet->registerListeners($this->sheetExport->registerEvents());
}
$sheet->close($this->sheetExport);
$writer->write(
$this->sheetExport,
$this->temporaryFile,
$this->writerType
);
}
}