Advertisement
jamboljack

Multiple Looping PHPExcel

Sep 16th, 2018
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.53 KB | None | 0 0
  1. public function excel($tahun, $program_id)
  2.     {
  3.         $pejabat = $this->db->get_where('sird_contact', array('contact_id' => 1))->row();
  4.         $tahun   = $tahun;
  5.         if ($program_id == 'all') {
  6.             $listProgram = $this->db->get_where('sird_program', array('program_year' => $tahun))->result();
  7.         } else {
  8.             $listProgram = $this->db->get_where('sird_program', array('program_id' => $program_id))->result();
  9.         }
  10.  
  11.         $objPHPExcel = new PHPExcel();
  12.         $objPHPExcel->getProperties()->setCreator("Jama' Rochmad Muttaqin")
  13.             ->setLastModifiedBy("Laporan Realisasi Capaian Kegiatan")
  14.             ->setTitle("Data Laporan Realisasi Capaian Kegiatan")
  15.             ->setSubject("Data Laporan Realisasi Capaian Kegiatan");
  16.  
  17.         $objPHPExcel->setActiveSheetIndex(0);
  18.         $objPHPExcel->getActiveSheet()->setCellValue('A6', "NO")
  19.             ->setCellValue('B6', "PROGRAM DAN KEGIATAN")
  20.             ->setCellValue('C6', "PAGU ANGGARAN (Rp)")
  21.             ->setCellValue('D6', "REALISASI ANGGARAN (Rp)")
  22.             ->setCellValue('E6', "SISA ANGGARAN (Rp)")
  23.             ->setCellValue('F6', "TARGET")
  24.             ->setCellValue('G6', "REALISASI")
  25.             ->setCellValue('H6', "KETERANGAN");
  26.  
  27.         $dataArray = array();
  28.         $no        = 0;
  29.         foreach ($listProgram as $r) {
  30.             $no++;
  31.             $row_array['no']      = '';
  32.             $row_array['program'] = $r->program_name;
  33.             $row_array['c']       = '';
  34.             $row_array['d']       = '';
  35.             $row_array['e']       = '';
  36.             $row_array['f']       = '';
  37.             $row_array['g']       = '';
  38.             $row_array['h']       = '';
  39.             array_push($dataArray, $row_array);
  40.  
  41.             // Sub Program
  42.             $nosub          = 0;
  43.             $program_id     = $r->program_id;
  44.             $listSubProgram = $this->db->get_where('sird_subprogram', array('program_id' => $program_id))->result();
  45.             foreach ($listSubProgram as $s) {
  46.                 $subprogram_id = $s->subprogram_id;
  47.                 $nosub++;
  48.                 $row_array['no']      = $nosub;
  49.                 $row_array['program'] = $s->subprogram_name;
  50.                 $row_array['c']       = '';
  51.                 $row_array['d']       = '';
  52.                 $row_array['e']       = '';
  53.                 $row_array['f']       = '';
  54.                 $row_array['g']       = '';
  55.                 $row_array['h']       = '';
  56.                 array_push($dataArray, $row_array);
  57.  
  58.                 // Kegiatan
  59.                 $nokegiatan   = 0;
  60.                 $listKegiatan = $this->db->get_where('sird_kegiatan', array('program_id' => $program_id, 'subprogram_id' => $subprogram_id))->result();
  61.                 foreach ($listKegiatan as $k) {
  62.                     $nokegiatan++;
  63.                     $row_array['no']      = '';
  64.                     $row_array['program'] = ucwords(strtolower($k->kegiatan_name));
  65.                     $row_array['c']       = number_format($k->kegiatan_pagu, 0, '', ',');
  66.                     $row_array['d']       = number_format($k->kegiatan_real, 0, '', ',');
  67.                     $row_array['e']       = number_format($k->kegiatan_sisa, 0, '', ',');
  68.                     $row_array['f']       = ucwords(strtolower($k->kegiatan_target));
  69.                     $row_array['g']       = ucwords(strtolower($k->kegiatan_realisasi));
  70.                     $row_array['h']       = ucwords(strtolower($k->kegiatan_keterangan));
  71.                     array_push($dataArray, $row_array);
  72.                 }
  73.             }
  74.         }
  75.  
  76.         $nox = $no + 6;
  77.         $objPHPExcel->getActiveSheet()->fromArray($dataArray, null, 'A7');
  78.         // Set page orientation and size
  79.         $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
  80.         $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
  81.         $objPHPExcel->getActiveSheet()->getPageMargins()->setTop(0.50);
  82.         $objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0.50);
  83.         $objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0.50);
  84.         $objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(0.50);
  85.         $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N');
  86.         $objPHPExcel->getActiveSheet()->getStyle('A6:H6')->getFont()->setBold(true);
  87.         $objPHPExcel->getActiveSheet()->getStyle('A6:H6')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  88.         $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(5);
  89.         $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(50);
  90.         $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
  91.         $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
  92.         $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
  93.         $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20);
  94.         $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
  95.         $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);
  96.         $objPHPExcel->setActiveSheetIndex(0);
  97.         $sharedStyle1 = new PHPExcel_Style();
  98.         $sharedStyle2 = new PHPExcel_Style();
  99.         $sharedStyle1->applyFromArray(
  100.             array(
  101.                 'borders' => array(
  102.                     'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
  103.                     'top'    => array('style' => PHPExcel_Style_Border::BORDER_THIN),
  104.                     'right'  => array('style' => PHPExcel_Style_Border::BORDER_THIN),
  105.                     'left'   => array('style' => PHPExcel_Style_Border::BORDER_THIN),
  106.                 ),
  107.             ));
  108.  
  109.         $objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle1, "A6:H$nox");
  110.         $objPHPExcel->getActiveSheet()->getRowDimension('6')->setRowHeight(40);
  111.         $objPHPExcel->getActiveSheet()->getStyle('A6:H6')->applyFromArray(
  112.             array(
  113.                 'font'      => array(
  114.                     'bold' => true,
  115.                 ),
  116.                 'alignment' => array(
  117.                     'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
  118.                     'vertical'   => PHPExcel_Style_Alignment::VERTICAL_CENTER,
  119.                 ),
  120.                 'borders'   => array(
  121.                     'top' => array(
  122.                         'style' => PHPExcel_Style_Border::BORDER_THIN,
  123.                     ),
  124.                 ),
  125.             )
  126.         );
  127.  
  128.         $objPHPExcel->getActiveSheet()->getStyle('C6:E6')->getAlignment()->setWrapText(true);
  129.         $objPHPExcel->getActiveSheet()->getStyle('A6:A1000')->getAlignment()->setWrapText(true);
  130.         $objPHPExcel->getActiveSheet()->getStyle('B6:B1000')->getAlignment()->setWrapText(true);
  131.         $objPHPExcel->getActiveSheet()->getStyle('A4:H1000')->getFont()->setName('Times New Roman');
  132.         $objPHPExcel->getActiveSheet()->getStyle('A4:H1000')->getFont()->setSize(10);
  133.         // Merge cells
  134.         $objPHPExcel->getActiveSheet()->mergeCells('A2:H2');
  135.         $objPHPExcel->getActiveSheet()->setCellValue('A2', "REALISASI CAPAIAN KINERJA KEGIATAN TAHUN ANGGARAN " . $tahun);
  136.         $objPHPExcel->getActiveSheet()->mergeCells('A3:H3');
  137.         $objPHPExcel->getActiveSheet()->setCellValue('A3', "DINAS PERUMAHAN RAKYAT DAN KAWASAN PERMUKIMAN KABUPATEN JEPARA");
  138.         $objPHPExcel->getActiveSheet()->mergeCells('A4:H4');
  139.         // $objPHPExcel->getActiveSheet()->setCellValue('A4', "TAHUN : " . $Tahun1 . " s/d " . $Tahun2);
  140.         $objPHPExcel->getActiveSheet()->getStyle()->getAlignment()->setWrapText(true);
  141.         $objPHPExcel->getActiveSheet()->getStyle('A2:H4')->getFont()->setName('Times New Roman');
  142.         $objPHPExcel->getActiveSheet()->getStyle('A2:H4')->getFont()->setSize(10);
  143.         $objPHPExcel->getActiveSheet()->getStyle('A3')->getFont()->setSize(10);
  144.         $objPHPExcel->getActiveSheet()->getStyle('A4')->getFont()->setSize(10);
  145.         $objPHPExcel->getActiveSheet()->getStyle('A2:H6')->getFont()->setBold(true);
  146.         $objPHPExcel->getActiveSheet()->getStyle('A2:H6')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  147.         $objPHPExcel->getActiveSheet()->getStyle('A7:A1000')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  148.         $objPHPExcel->getActiveSheet()->getStyle('B7:B1000')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
  149.         $objPHPExcel->getActiveSheet()->getStyle('C7:C1000')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  150.         $objPHPExcel->getActiveSheet()->getStyle('D7:D1000')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  151.         $objPHPExcel->getActiveSheet()->getStyle('E7:E1000')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  152.         $objPHPExcel->getActiveSheet()->getStyle('F7:F1000')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
  153.         $objPHPExcel->getActiveSheet()->getStyle('G7:G1000')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
  154.         $objPHPExcel->getActiveSheet()->getStyle('H7:H1000')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
  155.         $objPHPExcel->getActiveSheet()->getStyle('A7:A1000')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);
  156.         $objPHPExcel->getActiveSheet()->getStyle('C7:C1000')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);
  157.         $objPHPExcel->getActiveSheet()->getStyle('D7:D1000')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);
  158.         $objPHPExcel->getActiveSheet()->getStyle('E7:E1000')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);
  159.         $objPHPExcel->getActiveSheet()->getStyle('F7:F1000')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);
  160.         $objPHPExcel->getActiveSheet()->getStyle('G7:G1000')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);
  161.         $objPHPExcel->getActiveSheet()->getStyle('H7:H1000')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);
  162.  
  163.         $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  164.         $date      = date('Y-m-d');
  165.         $time      = time();
  166.         $objWriter->save('download/Data_Laporan_' . $date . '_' . $time . '.xlsx');
  167.         redirect(base_url('download/Data_Laporan_' . $date . '_' . $time . '.xlsx'));
  168.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement