-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Expand file tree
/
Copy pathCloseSheet.php
More file actions
79 lines (65 loc) 路 1.79 KB
/
Copy pathCloseSheet.php
File metadata and controls
79 lines (65 loc) 路 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?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;
/** Upper bound on how many times this job may be attempted. */
public $tries = 1;
/**
* @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
);
}
}