Agar header excel tidak ikut import ke mysql
Kali ini saya akan berbagi tutorial tentang cara Export data di mysql menjadi excel pada codeigniter. Namun, sebelum anda mengikuti tutorial ini lebih lanjut, saya sarankan untuk membaca postingan saya sebelumnya tentang Import excel ke mysql pada codeigniter dengan PHPExcel agar memahami bagaimana melakukan import sekaligus export (pada tutorial) dengan PHPexcel. Sebagaimana tabel di mysql yang dibuat sebelumnya pada tutorial import, kita akan memakai tabel tersebut untuk melakukan export data. Data pada tabel eimport sebagai berikut: Selanjutnya, controller yang akan dipakai juga contoller yang ada pada tutorial import dengan nama Excel.php hanya saja ditambahkan sebuah fungsi export sebagai berikut: public function export(){ $ambildata = $this->mread->export_kontak(); if(count($ambildata)>0){ $objPHPExcel = new PHPExcel(); // Set properties $objPHPExcel->getProperties() ->setCreator("SAMSUL ARIFIN") //creator ->setTitle("Programmer - Regional Planning and Monitoring, XL AXIATA"); //file title $objset = $objPHPExcel->setActiveSheetIndex(0); //inisiasi set object $objget = $objPHPExcel->getActiveSheet(); //inisiasi get object $objget->setTitle('Sample Sheet'); //sheet title //Warna header tabel $objget->getStyle("A1:C1")->applyFromArray( array( 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => '92d050') ), 'font' => array( 'color' => array('rgb' => '000000') ) ) ); //table header $cols = array("A","B","C"); $val = array("Nama ","Alamat","Kontak"); for ($a=0;$a<3; $a++) { $objset->setCellValue($cols[$a].'1', $val[$a]); //Setting lebar cell $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25); // NAMA $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25); // ALAMAT $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25); // Kontak $style = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ) ); $objPHPExcel->getActiveSheet()->getStyle($cols[$a].'1')->applyFromArray($style); } $baris = 2; foreach ($ambildata as $frow){ //pemanggilan sesuaikan dengan nama kolom tabel $objset->setCellValue("A".$baris, $frow->nama); //membaca data nama $objset->setCellValue("B".$baris, $frow->alamat); //membaca data alamat $objset->setCellValue("C".$baris, $frow->kontak); //membaca data alamat //Set number value $objPHPExcel->getActiveSheet()->getStyle('C1:C'.$baris)->getNumberFormat()->setFormatCode('0'); $baris++; } $objPHPExcel->getActiveSheet()->setTitle('Data Export'); $objPHPExcel->setActiveSheetIndex(0); $filename = urlencode("Data".date("Y-m-d H:i:s").".xls"); header('Content-Type: application/vnd.ms-excel'); //mime type header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name header('Cache-Control: max-age=0'); //no cache $objWriter = IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); }else{ redirect('Excel'); } } Penjelasan code di atas sudah saya taruh di masing-masing code dalam bentuk comment. Jadi, full code untuk controller Excel.php akan menjadi sebagai berikut: load->library(array('PHPExcel','PHPExcel/IOFactory')); $this->load->model('mread'); // memanggil model mread } public function export(){ $ambildata = $this->mread->export_kontak(); if(count($ambildata)>0){ $objPHPExcel = new PHPExcel(); // Set properties $objPHPExcel->getProperties() ->setCreator("SAMSUL ARIFIN") //creator ->setTitle("Programmer - Regional Planning and Monitoring, XL AXIATA"); //file title $objset = $objPHPExcel->setActiveSheetIndex(0); //inisiasi set object $objget = $objPHPExcel->getActiveSheet(); //inisiasi get object $objget->setTitle('Sample Sheet'); //sheet title $objget->getStyle("A1:C1")->applyFromArray( array( 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => '92d050') ), 'font' => array( 'color' => array('rgb' => '000000') ) ) ); //table header $cols = array("A","B","C"); $val = array("Nama ","Alamat","Kontak"); for ($a=0;$a<3; $a++) { $objset->setCellValue($cols[$a].'1', $val[$a]); //Setting lebar cell $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25); // NAMA $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25); // ALAMAT $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25); // Kontak $style = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ) ); $objPHPExcel->getActiveSheet()->getStyle($cols[$a].'1')->applyFromArray($style); } $baris = 2; foreach ($ambildata as $frow){ //pemanggilan sesuaikan dengan nama kolom tabel $objset->setCellValue("A".$baris, $frow->nama); //membaca data nama $objset->setCellValue("B".$baris, $frow->alamat); //membaca data alamat $objset->setCellValue("C".$baris, $frow->kontak); //membaca data kontak //Set number value $objPHPExcel->getActiveSheet()->getStyle('C1:C'.$baris)->getNumberFormat()->setFormatCode('0'); $baris++; } $objPHPExcel->getActiveSheet()->setTitle('Data Export'); $objPHPExcel->setActiveSheetIndex(0); $filename = urlencode("Data".date("Y-m-d H:i:s").".xls"); header('Content-Type: application/vnd.ms-excel'); //mime type header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name header('Cache-Control: max-age=0'); //no cache $objWriter = IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); }else{ redirect('Excel'); } } } Selanjutnya buat model baru pada folder application/model/ dengan nama mread.php untuk membaca data yang ada pada database. Isi file mread.php tersebut sebagai berikut: db->query("SELECT * from eimport"); if($query->num_rows() > 0){ foreach($query->result() as $data){ $hasil[] = $data; } return $hasil; } } } Selanjutnya, panggil contoller export dengan URL http://localhost/ci/excel/export/, jika proses dilakukan Silahkan tinggalkan komentar jika ada yang perlu didiskusikan. |