emprit

PHPExcel multiple sheet

Oct 30th, 2013
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.49 KB | None | 0 0
  1. <?php
  2. session_start();
  3. error_reporting(E_ALL);
  4.  
  5. /** PHPExcel */
  6. include 'PHPExcel.php';
  7.  
  8.  
  9. include '../../conn.php';
  10. function chappsdatetime($waktu){
  11.     if (isset($waktu)){
  12.     $waktu_bulan= substr($waktu,5,2);
  13.     $bulan_aray= array('Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember');
  14.     return substr($waktu,8,2)." ".$bulan_aray[$waktu_bulan]." ".substr($waktu,0,4)." ".substr($waktu,11,8);
  15.     }
  16. }
  17.  
  18. //variabel
  19. $bulan = $_POST['bulan'];
  20. $thn = $_POST['thn'];
  21. $cab = "Semarang";
  22.  
  23. // Create new PHPExcel object
  24. $objPHPExcel = new PHPExcel();
  25. // Set properties
  26. $objPHPExcel->getProperties()->setCreator("Rifaqu Emprit")
  27.                             ->setLastModifiedBy("Administrator")
  28.                             ->setTitle("Office 2007 XLSX Test Document")
  29.                             ->setSubject("Office 2007 XLSX Test Document")
  30.                             ->setDescription("Laporan Barang Semarang");
  31.  
  32. //query perulangan sheet menurut jenis barang
  33. $sheet = 0;
  34. $jenis_brg = mysql_query("SELECT nama FROM jenis_barang order by id_brg asc")or die(mysql_error());
  35. while ($nama = mysql_fetch_array($jenis_brg)){
  36.  
  37. if($sheet>0) $objPHPExcel->createSheet();
  38.  
  39. $objPHPExcel->setActiveSheetIndex($sheet);
  40. //autosize
  41. $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
  42. $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
  43. $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
  44. $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);
  45. $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setAutoSize(true);
  46. $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setAutoSize(true);
  47. $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setAutoSize(true);
  48. $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setAutoSize(true);
  49. $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setAutoSize(true);
  50. $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setAutoSize(true);
  51. $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setAutoSize(true);
  52. $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setAutoSize(true);
  53. $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setAutoSize(true);
  54. $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setAutoSize(true);
  55.  
  56.  
  57.  
  58.  
  59.        
  60.         //query transaksi
  61.         $baris = 6;
  62.         $no = 0;
  63.        
  64.         $transaksi = mysql_query("SELECT * FROM transaksi where kategori='".$nama['nama']."' and tgl_transaksi like '$thn-$bulan-%'") or die(mysql_error());
  65.         while($m=mysql_fetch_array($transaksi)){
  66.        
  67.         $no = $no +1;
  68.         $baris = $baris+1;
  69.  
  70.         $tgl = chappsdatetime($m['tgl_transaksi']);
  71.  
  72.         //isi
  73.         $objPHPExcel->getActiveSheet()
  74.              ->setCellValue("A$baris", $no)
  75.              ->setCellValue("B$baris", $tgl)
  76.              ->setCellValue("C$baris", $m['masuk'])
  77.              ->setCellValue("D$baris", $m['keluar'])
  78.              ->setCellValue("E$baris", '')
  79.              ->setCellValue("F$baris", $m['harga_beli'])
  80.              ->setCellValue("G$baris", $m['harga_jual'])
  81.              ->setCellValue("H$baris", '=SUM(G'.$baris.'-F'.$baris.')')
  82.              ->setCellValue("I$baris", '=SUM(H'.$baris.'*D'.$baris.')')
  83.              ->setCellValue("J$baris", '=SUM(C'.$baris.'*F'.$baris.')')
  84.              ->setCellValue("K$baris", '=SUM(D'.$baris.'*G'.$baris.')')
  85.              ->setCellValue("L$baris", $m['konsumen'])
  86.              ->setCellValue("M$baris", $m['alamat'])
  87.              ->setCellValue("N$baris", $m['ket']);
  88.  
  89.             $sharedStyle2 = new PHPExcel_Style();
  90.             $sharedStyle2->applyFromArray(
  91.              array('borders' => array(
  92.              'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
  93.              'top' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
  94.              'right' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM),
  95.              'left' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)
  96.              ),
  97.              ));
  98.              
  99.             $objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, "A$baris:N$baris");
  100.  
  101.             $objPHPExcel->getActiveSheet()->getStyle("A$baris:H$baris")->getFont()->setName('Times');
  102.             $objPHPExcel->getActiveSheet()->getStyle("A$baris:H$baris")->getFont()->setSize(11);
  103.  
  104.         }
  105.  
  106.             // Mulai Merge cells Judul
  107.             $objPHPExcel->getActiveSheet()
  108.                          ->mergeCells('A1:N1')
  109.                          ->setCellValue('A1', "LAPORAN TRANSAKSI BAJA RINGAN")
  110.                          ->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  111.  
  112.             $objPHPExcel->getActiveSheet()->mergeCells('A2:N2');
  113.             $objPHPExcel->getActiveSheet()->setCellValue('A2', "CV. ANJASA");
  114.             $objPHPExcel->getActiveSheet()->getStyle('A2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  115.  
  116.             $objPHPExcel->getActiveSheet()->mergeCells('A3:N3');
  117.             $objPHPExcel->getActiveSheet()->setCellValue('A3', "Jln. Tentara Pelajar No. 79");
  118.             $objPHPExcel->getActiveSheet()->getStyle('A3')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  119.  
  120.             $objPHPExcel->getActiveSheet()->mergeCells('A5:N5');
  121.             $objPHPExcel->getActiveSheet()->setCellValue('A5', "Bulan $bulan Cabang $cab");
  122.  
  123.             $objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getFont()->setName('Times');
  124.             $objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getFont()->setSize(12);
  125.             $objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getFont()->setBold(true);
  126.             $objPHPExcel->getActiveSheet()->getStyle('A2:H2')->getFont()->setName('Times');
  127.             $objPHPExcel->getActiveSheet()->getStyle('A2:H2')->getFont()->setSize(12);
  128.             $objPHPExcel->getActiveSheet()->getStyle('A2:H2')->getFont()->setBold(true);
  129.             $objPHPExcel->getActiveSheet()->getStyle('A3:H3')->getFont()->setName('Times');
  130.             $objPHPExcel->getActiveSheet()->getStyle('A3:H3')->getFont()->setSize(12);
  131.             $objPHPExcel->getActiveSheet()->getStyle('A3:H3')->getFont()->setBold(true);
  132.             $objPHPExcel->getActiveSheet()->getStyle('A5:H5')->getFont()->setName('Times');
  133.             $objPHPExcel->getActiveSheet()->getStyle('A5:H5')->getFont()->setSize(12);
  134.             $objPHPExcel->getActiveSheet()->getStyle('A5:H5')->getFont()->setBold(true);
  135.  
  136.     //pembuatan sheet
  137.     $objPHPExcel->getActiveSheet()
  138.                 ->SetCellValue('A7', 'No.')
  139.                 ->SetCellValue('B7', 'Tangal Transaksi')
  140.                 ->SetCellValue('C7', 'Pembelian')
  141.                 ->SetCellValue('D7', 'Penjualan')
  142.                 ->SetCellValue('E7', 'Stock Barang')
  143.                 ->SetCellValue('F7', 'Harga Beli')
  144.                 ->SetCellValue('G7', 'Harga Jual')
  145.                 ->SetCellValue('H7', 'Laba Jual')
  146.                 ->SetCellValue('I7', 'Total Laba Penjualan')
  147.                 ->SetCellValue('J7', 'Total Pembelian')
  148.                 ->SetCellValue('K7', 'Total Harga Jual')
  149.                 ->SetCellValue('L7', 'Konsumen')
  150.                 ->SetCellValue('M7', 'Alamat')
  151.                 ->SetCellValue('N7', 'Keterangan');
  152.  
  153.     //Membuat Garis atau tabel
  154.         $sharedStyle1 = new PHPExcel_Style();
  155.         $sharedStyle1->applyFromArray(
  156.         array('borders' => array(
  157.          'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
  158.          'top' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
  159.          'right' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM),
  160.          'left' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)
  161.         ),
  162.         ));
  163.        
  164.     // Rename sheet
  165.     $objPHPExcel->getActiveSheet()->setTitle($nama['nama']);
  166.    
  167.     $sheet = $sheet+1;
  168. }
  169.     // Set active sheet index to the first sheet, so Excel opens this as the first sheet
  170.     $objPHPExcel->setActiveSheetIndex(0);
  171.  
  172.     // Redirect output to a client’s web browser (Excel5)
  173.     header('Content-Type: application/vnd.ms-excel');
  174.     header('Content-Disposition: attachment;filename="Laporan Transaksi Barang-'.$bulan.$thn.'.xls"');
  175.     header('Cache-Control: max-age=0');
  176.      
  177.     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  178.     $objWriter->save('php://output');
  179.     exit;
Advertisement
Add Comment
Please, Sign In to add comment