<?php
namespace App\Exports;
use App\Models\JenisPembayaran;
use App\Models\Jenjang;
use App\Models\KategoriSiswa;
use App\Models\Kelas;
use App\Models\KelasPararel;
use Maatwebsite\Excel\Concerns\FromView;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\Cell\DataValidation;
class FormatSiswasExport implements FromView,WithEvents,ShouldAutoSize
{
public function view(): View
{
$jenisPembayarans = JenisPembayaran::orderBy('nama_jenis_pembayaran', 'asc')->get();
$kategoriSiswas = KategoriSiswa::orderBy('nama_kategori_siswa', 'asc')->get();
$jenjangs = Jenjang::orderBy('nama_jenjang', 'asc')->get();
$kelases = Kelas::orderBy('nama_kelas', 'asc')->get();
$kelasPararels = KelasPararel::orderBy('nama_kelas_pararel', 'asc')->get();
return view('siswa.excel.format-import', compact('jenisPembayarans', 'kategoriSiswas', 'jenjangs', 'kelases', 'kelasPararels'));
}
public function registerEvents(): array
{
$kategoriSiswas = KategoriSiswa::orderBy('nama_kategori_siswa', 'asc')->get();
$jenjangs = Jenjang::orderBy('nama_jenjang', 'asc')->get();
$kelases = Kelas::orderBy('nama_kelas', 'asc')->get();
$kelasPararels = KelasPararel::orderBy('nama_kelas_pararel', 'asc')->get();
return [
// handle by a closure.
AfterSheet::class => function(AfterSheet $event)use($kategoriSiswas,$jenjangs,$kelases,$kelasPararels) {
//select kategori siswa
$select1 = $event->sheet->getCell("H2")->getDataValidation();
$select1->setType(DataValidation::TYPE_LIST );
$select1->setErrorStyle(DataValidation::STYLE_INFORMATION );
$select1->setAllowBlank(false);
$select1->setShowInputMessage(true);
$select1->setShowErrorMessage(true);
$select1->setShowDropDown(true);
$select1->setErrorTitle('Input error');
$select1->setError('Value is not in list.');
$select1->setPromptTitle('Pick from list');
$select1->setPrompt('Please pick a value from the drop-down list.');
$select1->setFormula1(sprintf('"%s"',implode(',',$kategoriSiswas->pluck('nama_kategori_siswa')->toArray())));
$event->sheet->getCell("H2")->setDataValidation($select1);
$event->sheet->getColumnDimension("H")->setAutoSize(true);
//select jenjang
$select2 = $event->sheet->getCell("I2")->getDataValidation();
$select2->setType(DataValidation::TYPE_LIST );
$select2->setErrorStyle(DataValidation::STYLE_INFORMATION );
$select2->setAllowBlank(false);
$select2->setShowInputMessage(true);
$select2->setShowErrorMessage(true);
$select2->setShowDropDown(true);
$select2->setErrorTitle('Input error');
$select2->setError('Value is not in list.');
$select2->setPromptTitle('Pick from list');
$select2->setPrompt('Please pick a value from the drop-down list.');
$select2->setFormula1(sprintf('"%s"',implode(',',$jenjangs->pluck('nama_jenjang')->toArray())));
$event->sheet->getCell("I2")->setDataValidation($select2);
$event->sheet->getColumnDimension("I")->setAutoSize(true);
//select kelas
$select3 = $event->sheet->getCell("J2")->getDataValidation();
$select3->setType(DataValidation::TYPE_LIST );
$select3->setErrorStyle(DataValidation::STYLE_INFORMATION );
$select3->setAllowBlank(false);
$select3->setShowInputMessage(true);
$select3->setShowErrorMessage(true);
$select3->setShowDropDown(true);
$select3->setErrorTitle('Input error');
$select3->setError('Value is not in list.');
$select3->setPromptTitle('Pick from list');
$select3->setPrompt('Please pick a value from the drop-down list.');
$select3->setFormula1(sprintf('"%s"',implode(',',$kelases->pluck('nama_kelas')->toArray())));
$event->sheet->getCell("J2")->setDataValidation($select3);
$event->sheet->getColumnDimension("J")->setAutoSize(true);
//select kelas pararel
$select4 = $event->sheet->getCell("K2")->getDataValidation();
$select4->setType(DataValidation::TYPE_LIST );
$select4->setErrorStyle(DataValidation::STYLE_INFORMATION );
$select4->setAllowBlank(false);
$select4->setShowInputMessage(true);
$select4->setShowErrorMessage(true);
$select4->setShowDropDown(true);
$select4->setErrorTitle('Input error');
$select4->setError('Value is not in list.');
$select4->setPromptTitle('Pick from list');
$select4->setPrompt('Please pick a value from the drop-down list.');
$select4->setFormula1(sprintf('"%s"',implode(',',$kelasPararels->pluck('nama_kelas_pararel')->toArray())));
$event->sheet->getCell("K2")->setDataValidation($select4);
$event->sheet->getColumnDimension("K")->setAutoSize(true);
//select status aktif dan tidak aktif
$select5 = $event->sheet->getCell("L2")->getDataValidation();
$select5->setType(DataValidation::TYPE_LIST );
$select5->setErrorStyle(DataValidation::STYLE_INFORMATION );
$select5->setAllowBlank(false);
$select5->setShowInputMessage(true);
$select5->setShowErrorMessage(true);
$select5->setShowDropDown(true);
$select5->setErrorTitle('Input error');
$select5->setError('Value is not in list.');
$select5->setPromptTitle('Pick from list');
$select5->setPrompt('Please pick a value from the drop-down list.');
$select5->setFormula1('"AKTIF,TIDAK AKTIF"');
$event->sheet->getCell("L2")->setDataValidation($select5);
$event->sheet->getColumnDimension("L")->setAutoSize(true);
//data column dengan format Y-m-d untuk kolom P2
$event->sheet->setCellValue('M2', date("Y-m-d"));
$event->sheet->getColumnDimension("M")->setAutoSize(true);
},
];
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]