<?php
namespace App\Exports\Sheets;
use App\Models\Caleg;
use App\Models\Dapil;
use App\Models\KabKota;
use App\Models\KabupatenKota;
use App\Models\Kecamatan;
use App\Models\Partai;
use App\Models\Regency;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Events\AfterSheet;
use PhpOffice\PhpSpreadsheet\Cell\DataValidation;
class ImportPesertaSheet implements FromView, WithTitle, WithEvents,ShouldAutoSize
{
public function __construct()
{
//$this->user = $user;
}
public function view(): View
{
// $kabupatenKotas = KabupatenKota::with(['kecamatans'=>function($w){
// $w->with('kelurahan_desas');
// }])->get();
return view('admin.peserta.template-excel');
}
/**
* @return string
*/
public function title(): string
{
return 'INPUT_PESERTA';
}
public function registerEvents(): array
{
$kabupatenKotas = Regency::where('province_id',64);
$kabupatenKotas = $kabupatenKotas->get();
return [
AfterSheet::class => function(AfterSheet $event)use($kabupatenKotas) {
$options = [
'Laki-Laki',
'Perempuan',
];
$pilihJenisKelamin = $event->sheet->getCell("E2")->getDataValidation();
$pilihJenisKelamin->setType(DataValidation::TYPE_LIST);
$pilihJenisKelamin->setErrorStyle(DataValidation::STYLE_INFORMATION);
$pilihJenisKelamin->setAllowBlank(false);
$pilihJenisKelamin->setShowInputMessage(false);
$pilihJenisKelamin->setShowErrorMessage(true);
$pilihJenisKelamin->setShowDropDown(true);
$pilihJenisKelamin->setErrorTitle('Input error');
$pilihJenisKelamin->setError('Jenis Kelamin tidak adadalam list.');
$pilihJenisKelamin->setFormula1(sprintf('"%s"',implode(',',$options)));
//default value
$event->sheet->setCellValue('H2', @$kabupatenKotas[0]->name);
$validation = $event->sheet->getCell("H2")->getDataValidation();
$validation->setType(DataValidation::TYPE_LIST);
$validation->setErrorStyle(DataValidation::STYLE_INFORMATION);
$validation->setAllowBlank(false);
$validation->setShowInputMessage(false);
$validation->setShowErrorMessage(true);
$validation->setShowDropDown(true);
$validation->setErrorTitle('Input error');
$validation->setError('Kabupaten/Kota Tidak Ada dalam list.');
// $validation->setPromptTitle('Silahkan pilih kecamatan');
// $validation->setPrompt('Silahkan pilih kecamatan.');
$validation->setFormula1('=ListKabupatenKota');
$validation1 = $event->sheet->getCell("I2")->getDataValidation();
$validation1->setType(DataValidation::TYPE_LIST);
$validation1->setErrorStyle(DataValidation::STYLE_INFORMATION);
$validation1->setAllowBlank(false);
$validation1->setShowInputMessage(false);
$validation1->setShowErrorMessage(true);
$validation1->setShowDropDown(true);
$validation1->setErrorTitle('Input error');
$validation1->setError('Kecamatan Tidak Ada dalam list.');
$validation1->setFormula1('=INDIRECT("KEC_"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($H2,"-","_")," ","_"),"'."'".'",""))');
$validation2 = $event->sheet->getCell("J2")->getDataValidation();
$validation2->setType(DataValidation::TYPE_LIST);
$validation2->setErrorStyle(DataValidation::STYLE_INFORMATION);
$validation2->setAllowBlank(false);
$validation2->setShowInputMessage(false);
$validation2->setShowErrorMessage(true);
$validation2->setShowDropDown(true);
$validation2->setErrorTitle('Input error');
$validation2->setError('Kelurahan/desa Tidak Ada dalam list.');
$validation2->setFormula1('=INDIRECT("KEL_DES_"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($I2,"-","_")," ","_"),"'."'".'",""))');
$validation3 = $event->sheet->getCell("K2")->getDataValidation();
$validation3->setType(DataValidation::TYPE_LIST);
$validation3->setErrorStyle(DataValidation::STYLE_INFORMATION);
$validation3->setAllowBlank(false);
$validation3->setShowInputMessage(false);
$validation3->setShowErrorMessage(true);
$validation3->setShowDropDown(true);
$validation3->setErrorTitle('Input error');
$validation3->setError('Pelatihan Tidak Ada dalam list.');
$validation3->setFormula1('=INDIRECT("ListPelatihan")');
$event->sheet->getStyle('A1:K2')->applyFromArray([
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
],
],
]);
$event->sheet->getStyle('A1:K1')->applyFromArray([
'font' => [
'bold' => true,
],
]);
},
];
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]