Added serial export excel page #838
68
app/Exports/SerialExport.php
Normal file
68
app/Exports/SerialExport.php
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Exports;
|
||||||
|
|
||||||
|
use Maatwebsite\Excel\Concerns\FromCollection;
|
||||||
|
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||||
|
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Cell\Cell;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Cell\DataType;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder;
|
||||||
|
use Maatwebsite\Excel\Concerns\WithCustomValueBinder;
|
||||||
|
|
||||||
|
class SerialExport extends DefaultValueBinder implements FromCollection, WithHeadings, WithCustomValueBinder
|
||||||
|
, WithColumnFormatting
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Support\Collection
|
||||||
|
*/
|
||||||
|
|
||||||
|
protected $itemCode;
|
||||||
|
protected $fromSerial;
|
||||||
|
protected $toSerial;
|
||||||
|
|
||||||
|
public function __construct($itemCode, $fromSerial, $toSerial)
|
||||||
|
{
|
||||||
|
$this->itemCode = $itemCode;
|
||||||
|
$this->fromSerial = $fromSerial;
|
||||||
|
$this->toSerial = $toSerial;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function bindValue(Cell $cell, $value)
|
||||||
|
{
|
||||||
|
$cell->setValueExplicit((string) $value, DataType::TYPE_STRING);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function collection()
|
||||||
|
{
|
||||||
|
$rows = [];
|
||||||
|
|
||||||
|
for ($i = $this->fromSerial; $i <= $this->toSerial; $i++) {
|
||||||
|
$rows[] = [
|
||||||
|
'item_code' => $this->itemCode,
|
||||||
|
'serial_number' => str_pad($i, 6, '0', STR_PAD_LEFT),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Collection($rows);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function columnFormats(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'B' => NumberFormat::FORMAT_TEXT,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function headings(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'Item Code',
|
||||||
|
'Serial Number',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user