Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace app\laporan;
- //use PHPExcel;
- //use alexgx\phpexcel;
- use PHPExcel;
- use app\models\Laporan;
- //use yii\db\Query;
- //use yii\helpers\ArrayHelper;
- //$connection = \Yii::$app->db;
- use PHPExcel\IOFactory;
- use Yii;
- class Excel extends PHPExcel{
- function CetakExcel($model,$no_def_otomatis){
- //$objPHPExcel = new PHPExcel();
- $styleArray = array(
- 'font' => array(
- 'bold' => true,
- 'color' => array('rgb' => 'FF0000'),
- 'size' => 15,
- 'name' => 'Verdana'
- ));
- $this->getActiveSheet()->getDefaultRowDimension()->setRowHeight(17);
- $this->getActiveSheet()->getDefaultColumnDimension()->setWidth(7);
- $this->getActiveSheet()->getColumnDimension('B')->setWidth(30);
- $this->getActiveSheet()->getColumnDimension('C')->setWidth(25);
- $this->getActiveSheet()->getColumnDimension('D')->setWidth(25);
- $this->getActiveSheet()->getColumnDimension('E')->setWidth(17);
- $this->getActiveSheet()->getColumnDimension('F')->setWidth(17);
- $this->getActiveSheet()->getColumnDimension('G')->setWidth(17);
- $this->getActiveSheet()->getColumnDimension('H')->setWidth(17);
- $this->getActiveSheet()->getColumnDimension('I')->setWidth(14);
- $this->getActiveSheet()->getColumnDimension('J')->setWidth(17);
- $this->getActiveSheet()->getColumnDimension('K')->setWidth(17);
- $this->getActiveSheet()->getColumnDimension('L')->setWidth(17);
- $this->getActiveSheet()->getColumnDimension('M')->setWidth(17);
- // $this->getActiveSheet()->getColumnDimension('N')->setWidth(17);
- //$this->getActiveSheet()->getColumnDimension('O')->setWidth(17);
- //$this->getActiveSheet()->getStyle('A1')->applyFromArray($styleArray);
- $this->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FFE8E5E5');
- $this->getActiveSheet()->getStyle('A7:M7')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FFE8E5E5');
- $this->setActiveSheetIndex(0)
- ->setCellValue('A1', 'DATA KESISWAAN')
- ->setCellValue('A7', 'No.')
- ->setCellValue('B7', 'Masalah')
- ->setCellValue('C7', 'Rincian Masalah')
- ->setCellValue('D7', 'Alamat')
- ->setCellValue('E7', 'Telepon')
- ->setCellValue('F7', 'Tempat Lahir')
- ->setCellValue('G7', 'Tanggal Lahir')
- ->setCellValue('H7', 'Jenis Kelamin')
- ->setCellValue('I7', 'Agama')
- ->setCellValue('J7', 'Agama')
- ->setCellValue('K7', 'Agama')
- ->setCellValue('L7', 'Agama')
- ->setCellValue('M7', 'Agama');
- //->setCellValue('N7', 'Agama')
- //->setCellValue('O7', 'Agama');
- /*$i=1;
- $rowCount = 8;
- $query = new Query;
- $query->select(['siswa.id','siswa.nis', 'siswa.nama','siswa.alamat','siswa.telepon','siswa.tempat_lahir','siswa.tanggal_lahir','jenkel.jenkel','agama.agama','siswa.foto'])->from('siswa')->join('LEFT OUTER JOIN', 'jenkel','siswa.jenkel_id =jenkel.id')->join('LEFT OUTER JOIN', 'agama','siswa.agama_id =agama.id')->groupBy(['siswa.id']);
- $command = $query->createCommand();
- $data = $command->queryAll();
- foreach($data as $row) {
- //$this->getActiveSheet()->SetCellValue('A'.$rowCount, $i++);
- $this->getActiveSheet()->SetCellValue('A'.$rowCount, $row['id']);
- $this->getActiveSheet()->SetCellValue('B'.$rowCount, $row['nis']);
- $this->getActiveSheet()->SetCellValue('C'.$rowCount, $row['nama']);
- $this->getActiveSheet()->SetCellValue('D'.$rowCount, $row['alamat']);
- $this->getActiveSheet()->SetCellValue('E'.$rowCount, $row['telepon']);
- $this->getActiveSheet()->SetCellValue('F'.$rowCount, $row['tempat_lahir']);
- $this->getActiveSheet()->SetCellValue('G'.$rowCount, $row['tanggal_lahir']);
- $this->getActiveSheet()->SetCellValue('H'.$rowCount, $row['jenkel']);
- $this->getActiveSheet()->SetCellValue('I'.$rowCount, $row['agama']);
- //$this->getActiveSheet()->getStyle('A'.$rowCount.':I'.$rowCount)->getFont()->setBold()->setSize()->setName('Calibri')->getColor()->setRGB('8A2BE2');
- $this->getActiveSheet()->getStyle('A'.$rowCount.':I'.$rowCount)->getBorders()->getAllBorders()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- //$this->getActiveSheet()->getStyle('A'.$rowCount.':I'.$rowCount)->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('90EE90');
- $rowCount++;
- //SiswaExcel($this);
- }*/
- $i=1;
- $rowCount = 8;
- $no_def = 0; //initial value jika no_definitif_otomatis bernilai 1
- var_dump($model);
- echo "</pre>";
- exit;
- foreach ($model as $data => $value){
- //$table->addRow();
- if ($no_def_otomatis == "0") //no def ambil dari database
- //$table->addCell(700)->addText(htmlspecialchars($value['no_def']),null,['align'=>'center']); //no def database
- {
- $this->getActiveSheet()->SetCellValue(htmlspecialchars('A'.$rowCount, $value['no_def']),null);
- //echo $value['no_def'];
- }
- //$this->getActiveSheet()->SetCellValue('A'.$rowCount, $i++);
- else {
- $no_def++;
- //$table->addCell(700)->addText($no_def,null,['align'=>'center']); //no def manual
- $this->getActiveSheet()->SetCellValue(htmlspecialchars('A'.$rowCount, $no_def,null));
- //echo $no_def;
- }
- // var_dump($value);
- // echo "</pre>";
- // exit;
- //$cellNya = $table->addCell(3500); //masalah
- if ($prevKetJra == $value['ket_jra']) { //untuk cetak Jra pada cell 1
- if ($prevKlas3 != $value['klasifikasi3']){
- //$cellNya->addText(htmlspecialchars($value['klasifikasi2'].':'.$value['masalah2']),'fStyle','pJustify');
- //$cellNya->addTextBreak(1);
- //$cellNya->addText(htmlspecialchars($value['klasifikasi3'].':'.$value['masalah3']),'fStyle','pJustify');
- //));
- if (empty($value['klasifikasi2']) || empty($value['klasifikasi3'])){
- $this->getActiveSheet()->SetCellValue('B'.$rowCount,$value['klasifikasi2'].''.$value['masalah2'].':'.$value['klasifikasi3'].''.$value['masalah3']);
- //$this->getActiveSheet()->SetCellValuet($value['klasifikasi3'].''.$value['masalah3']);
- } else {
- //$this->getActiveSheet()->SetCellValue($value['klasifikasi2'].':'.$value['masalah2']);
- //$this->getActiveSheet()->SetCellValue($value['klasifikasi3'].':'.$value['masalah3']);
- $this->getActiveSheet()->SetCellValue('B'.$rowCount,$value['klasifikasi2'].':'.$value['masalah2'].':'.$value['klasifikasi3'].':'.$value['masalah3']);
- }
- } else {
- $this->getActiveSheet()->SetCellValue('B'.$rowCount,'');
- }
- }
- else //jika tidak sama maka cetak{
- {
- //$cellNya->addText(htmlspecialchars(Laporan::getKetJraNama($value['ket_jra'])),'fStyle','pJustify');
- $this->getActiveSheet()->SetCellValue('B'.$rowCount, Laporan::getKetJraNama($value['ket_jra']));
- //$cellNya->addText(htmlspecialchars($value['klasifikasi2'].':'.$value['masalah2']),'fStyle','pJustify');
- //$cellNya->addText(htmlspecialchars($value['klasifikasi3'].':'.$value['masalah3']),'fStyle','pJustify');
- if (empty($value['klasifikasi2']) || empty($value['klasifikasi3'])){
- //$this->getActiveSheet()->SetCellValue($value['klasifikasi2'].''.$value['masalah2']);
- //$this->getActiveSheet()->SetCellValue($value['klasifikasi3'].''.$value['masalah3']);
- $this->getActiveSheet()->SetCellValue('B'.$rowCount,$value['klasifikasi2'].''.$value['masalah2'].':'.$value['klasifikasi3'].''.$value['masalah3']);
- } else {
- //$this->getActiveSheet()->SetCellValue($value['klasifikasi2'].':'.$value['masalah2']);
- //$this->getActiveSheet()->SetCellValue($value['klasifikasi3'].':'.$value['masalah3']);
- $this->getActiveSheet()->SetCellValue('B'.$rowCount,$value['klasifikasi2'].':'.$value['masalah2'].':'.$value['klasifikasi3'].':'.$value['masalah3']);
- }
- }
- //$cellNya = $table->addCell(4750); // rincian masalah
- $isi = nl2br($value['isi_arsip']);
- $isinya = explode("<br />",$isi);
- foreach($isinya as $data){
- if ($data != "")
- {$this->getActiveSheet()->SetCellValue('C'.$rowCount,$data);}
- }
- $this->getActiveSheet()->SetCellValue('C'.$rowCount,'Dari: '.$value['dari_kepada']);
- if ($value['bulan2']){
- $this->getActiveSheet()->SetCellValue('C'.$rowCount,'Bulan: '.Laporan::getBulanNama($value['bulan1']).'-'.Laporan::getBulanNama($value['bulan2']).' '.$value['tahun1']);
- }
- else{
- $this->getActiveSheet()->SetCellValue('C'.$rowCount,'Bulan: '.Laporan::getBulanNama($value['bulan1']).' '.$value['tahun1']);
- }
- $prevKlas3 = $value['klasifikasi3'];
- $prevKetJra = $value['ket_jra'];
- //$cellNya = $table->addCell(750);
- $this->getActiveSheet()->SetCellValue('D'.$rowCount,$value['retensi_inaktif']);
- //$cellNya = $table->addCell(750);
- $this->getActiveSheet()->SetCellValue('E'.$rowCount,$value['jra_m']);
- //$cellNya = $table->addCell(750);
- $this->getActiveSheet()->SetCellValue('F'.$rowCount,$value['jra_dk']);
- //$cellNya = $table->addCell(750);
- $this->getActiveSheet()->SetCellValue('G'.$rowCount,$value['jra_p']);
- //$cellNya = $table->addCell(750);
- $this->getActiveSheet()->SetCellValue('H'.$rowCount,$value['jra_b']);
- //$cellNya = $table->addCell(750);
- $this->getActiveSheet()->SetCellValue('I'.$rowCount,$value['jra_v']);
- //$cellNya = $table->addCell(750);
- $this->getActiveSheet()->SetCellValue('J'.$rowCount,$value['jra_s']);
- //$cellNya = $table->addCell(750);
- $this->getActiveSheet()->SetCellValue('K'.$rowCount,$value['jml_satuan'].''.$value['satuan']);
- //$this->getActiveSheet()->SetCellValue('K'.$rowCount,$value['jml_satuan']);
- //$this->getActiveSheet()->SetCellValue('L'.$rowCount,$value['satuan']);
- //$cellNya = $table->addCell(750);
- $this->getActiveSheet()->SetCellValue('L'.$rowCount,$value['jml_boks']);
- //$cellNya = $table->addCell(1000);
- $this->getActiveSheet()->SetCellValue('M'.$rowCount,$value['pelaksana_operator'].''.$value['kelengkapan']);
- //$this->getActiveSheet()->SetCellValue('N'.$rowCount,$value['pelaksana_operator']);
- //$this->getActiveSheet()->SetCellValue('O'.$rowCount,$value['kelengkapan']);
- $this->getActiveSheet()->getStyle('A'.$rowCount.':M'.$rowCount)->getBorders()->getAllBorders()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $rowCount++;
- return $this;
- }
- //return $this;
- $this->getActiveSheet()->getStyle('A1')->getFont()->setBold(true)->setSize(12)->setName('Arial')->getColor()->setRGB('FF0000');
- $this->getActiveSheet()->getStyle('A2')->getFont()->setBold(true)->setSize(12)->setName('Arial');
- $this->getActiveSheet()->getStyle('A7:I7')->getFont()->setBold(true)->setSize(12)->setName('Arial')->getColor()->setRGB('FF0000');
- $this->getActiveSheet()
- ->mergeCells('A1:I1')
- ->mergeCells('A2:I2');
- $this->getActiveSheet()->getStyle('A7:I7')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- /*$this->getActiveSheet()->getStyle('B7')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $this->getActiveSheet()->getStyle('C7')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $this->getActiveSheet()->getStyle('D7')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $this->getActiveSheet()->getStyle('E7')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $this->getActiveSheet()->getStyle('F7')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $this->getActiveSheet()->getStyle('G7')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $this->getActiveSheet()->getStyle('H7')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $this->getActiveSheet()->getStyle('I7')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- */
- $this->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $this->getActiveSheet()->getStyle('A2')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $this->getActiveSheet()->getStyle('A8:N18')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $this->getActiveSheet()->getStyle('A7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('B7:B7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('C7:C7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('D7:D7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('E7:E7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('F7:F7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('G7:G7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('H7:H7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('I7:I7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('J7:J7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('K7:K7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('L7:L7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('M7:M7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- //$this->getActiveSheet()->getStyle('E7:H7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- // $this->getActiveSheet()->getStyle('I7:K7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- //$this->getActiveSheet()->getStyle('L7:N7')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->getStyle('A7:M7')->getBorders()->getTop()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THICK);
- //$this->getActiveSheet()->getStyle('A7:I18')->getBorders()->getAllBorders()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- //$this->getActiveSheet()->getStyle('L8:N10')->getBorders()->getOutline()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
- $this->getActiveSheet()->setTitle('Simple');
- $this->setActiveSheetIndex(0);
- // ob_end_clean();
- // ob_start();
- // header('Content-Type: application/vnd.ms-excel');
- // header('Content-Disposition: attachment;filename="test.xls"');
- // header('Cache-Control: max-age=0');
- // $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
- // $objWriter->save('php://output');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement