Membuat laporan format Excel dengan Codeigniter? . Nah tutorial kali ini akan membahas cara membuat report format Excel dengan Codeigniter dan PHPSpreadsheet (sebelumnya bernama PHPExcel). Selamat belajar, semoga bisa dan mudah dipraktekkan Show
Mari kita mulai mempelajarinya Pastikan XAMPP aktifSebelum menginstal Composer, pastikan Anda telah menginstal XAMPP. Anda dapat mengunduhnya di tautan ini https. // www. apachefriends. org/index. html. Untuk proses instalasi XAMPP silahkan tonton video ini Mengunduh Codeigniter versi terbaruSilahkan buka situs www. codeigniter. com, lalu unduh versi terbaru. Dalam tutorial ini, Codeigniter versi 3 digunakan. 1. 8 Instal CodeigniterSetelah proses download selesai, selanjutnya kita harus menginstal Codeigniter Instalasi Codeigniter - Kursus Pemrograman Web Java Media Web Depok
Menguji hasil instalasi CodeigniterUntuk menguji, buka browser web Anda, lalu ketikkan alamat http. //localhost/reportexcel Kursus Codeigniter – Java Web Media DepokMengunduh PHPSpreadsheet dengan ComposerPHPSpreadsheet adalah library PHP yang berfungsi untuk mengelola file Excel dengan PHP. Anda dapat membaca situs resminya di https. //phpspreadsheet. readthedocs. io/en/kembangkan/. PHPSpreadsheet dulunya adalah PHPExcel Untuk mengunduh PHPSpreadsheet, Anda harus menggunakan Composer. Cara install Composer silahkan lihat tutorialnya. Cara menginstal Komposer di Windows Siapkan folder untuk diunduhSebelum mendownload siapkan folder yang akan kita gunakan sebagai tempat menyimpan dependencies file PHPSpreadsheet yang akan digunakan
Mengunduh PHPSpreadsheetBerikut adalah langkah-langkah untuk mendownload PHPSpreadsheet dengan Composer
Pindahkan atau Salin folder excel ke folder laporan excelSetelah file dependensi PHPSpreadsheet sudah diunduh di folder excel, langkah selanjutnya adalah mentransfer atau menyalin folder excel ke instalasi Codeigniter di folder laporan excel PHPSpreadsheet – Kursus Web DepokMempersiapkan Basis DataSelanjutnya adalah mempersiapkan database. Buka PHPMyAdmin Anda dengan mengakses http. //localhost/phpmyadmin. Kemudian buat database dengan nama reportexcel Membuat database MySQL - Kursus Pemrograman Web JakartaKemudian impor database sampel berikut CREATE TABLE `provinsi` ( `id_provinsi` varchar(2) NOT NULL, `nama_provinsi` tinytext NOT NULL, `aktif` enum('1','0','','') NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data untuk tabel `provinsi` -- INSERT INTO `provinsi` (`id_provinsi`, `nama_provinsi`, `aktif`) VALUES ('11', 'Aceh', '1'), ('12', 'Sumatera Utara', '1'), ('13', 'Sumatera Barat', '1'), ('14', 'Riau', '1'), ('15', 'Jambi', '1'), ('16', 'Sumatera Selatan', '1'), ('17', 'Bengkulu', '1'), ('18', 'Lampung', '1'), ('19', 'Kepulauan Bangka Belitung', '1'), ('21', 'Kepulauan Riau', '1'), ('31', 'DKI Jakarta', '1'), ('32', 'Jawa Barat', '1'), ('33', 'Jawa Tengah', '1'), ('34', 'DI Yogyakarta', '1'), ('35', 'Jawa Timur', '1'), ('36', 'Banten', '1'), ('51', 'Bali', '1'), ('52', 'Nusa Tenggara Barat', '1'), ('53', 'Nusa Tenggara Timur', '1'), ('61', 'Kalimantan Barat', '1'), ('62', 'Kalimantan Tengah', '1'), ('63', 'Kalimantan Selatan', '1'), ('64', 'Kalimantan Timur', '1'), ('65', 'Kalimantan Utara', '1'), ('71', 'Sulawesi Utara', '1'), ('72', 'Sulawesi Tengah', '1'), ('73', 'Sulawesi Selatan', '1'), ('74', 'Sulawesi Tenggara', '1'), ('75', 'Gorontalo', '1'), ('76', 'Sulawesi Barat', '1'), ('81', 'Maluku', '1'), ('82', 'Maluku Utara', '1'), ('91', 'Papua Barat', '1'), ('92', 'Papua', '1'); -- -- Indexes for dumped tables -- -- -- Indexes for table `provinsi` -- ALTER TABLE `provinsi` ADD PRIMARY KEY (`id_provinsi`); COMMIT;Impor database MySQL – Kursus WebGL Depok Maka akan menghasilkan database seperti di bawah ini Setting Database, Config dan Autoload di CodeigniterSetelah database dan semua file dependensi siap, saatnya masuk ke Codeigniter Kursus Codeigniter – Java Web Media DepokBerikut langkah-langkah setting Codeigniter yang harus dilakukan Pengaturan konfigurasi. php (dalam folder laporan excel/application/config)
Pengaturan muatan otomatis. php (dalam folder laporan excel/application/config)
Pengaturan basis data. php (dalam folder laporan excel/application/config)
Buat Model Model_province. php di dalam folder reportexcel/application/modelsModel berisi query database yang akan digambar
Kode Provinsi_model. php <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Provinsi_model extends CI_Model { public function __construct() { parent::__construct(); $this->load->database(); } // Listing public function listing() { $this->db->select('*'); $this->db->from('provinsi'); $this->db->order_by('id_provinsi', 'ASC'); $query = $this->db->get(); return $query->result(); } } /* End of file Provinsi_model.php */ /* Location: ./application/models/Provinsi_model.php */_ Buat Pengontrol Laporkan. php di folder reportexcel/application/controllersPengontrol berisi fungsi untuk diakses di URL (Alamat Situs Web)
Ini kode laporannya. php <?php defined('BASEPATH') OR exit('No direct script access allowed'); // Load library phpspreadsheet require('./excel/vendor/autoload.php'); use PhpOffice\PhpSpreadsheet\Helper\Sample; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; // End load library phpspreadsheet class Laporan extends CI_Controller { // Load model public function __construct() { parent::__construct(); $this->load->model('provinsi_model'); } // Main page public function index() { $provinsi = $this->provinsi_model->listing(); $data = array( 'title' => 'Laporan Exel - Java Media', 'provinsi' => $provinsi ); $this->load->view('laporan', $data, FALSE); } // Export ke excel public function export() { $provinsi = $this->provinsi_model->listing(); // Create new Spreadsheet object $spreadsheet = new Spreadsheet(); // Set document properties $spreadsheet->getProperties()->setCreator('Andoyo - Java Web Media') ->setLastModifiedBy('Andoyo - Java Web Medi') ->setTitle('Office 2007 XLSX Test Document') ->setSubject('Office 2007 XLSX Test Document') ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') ->setKeywords('office 2007 openxml php') ->setCategory('Test result file'); // Add some data $spreadsheet->setActiveSheetIndex(0) ->setCellValue('A1', 'KODE PROVINSI') ->setCellValue('B1', 'NAMA PROVINSI') ; // Miscellaneous glyphs, UTF-8 $i=2; foreach($provinsi as $provinsi) { $spreadsheet->setActiveSheetIndex(0) ->setCellValue('A'.$i, $provinsi->id_provinsi) ->setCellValue('B'.$i, $provinsi->nama_provinsi); $i++; } // Rename worksheet $spreadsheet->getActiveSheet()->setTitle('Report Excel '.date('d-m-Y H')); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $spreadsheet->setActiveSheetIndex(0); // Redirect output to a client’s web browser (Xlsx) header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="Report Excel.xlsx"'); header('Cache-Control: max-age=0'); // If you're serving to IE 9, then the following may be needed header('Cache-Control: max-age=1'); // If you're serving to IE over SSL, then the following may be needed header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header('Pragma: public'); // HTTP/1.0 $writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); $writer->save('php://output'); exit; } } /* End of file Laporan.php */ /* Location: ./application/controllers/Laporan.php */ Buat laporan view_view. php di folder reportalexcel/application/viewsTampilan berisi file tampilan laporan
Ini adalah kode report_view. php <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title><?php echo $title ?></title> <style type="text/css" media="screen"> body { background-color: #EEE; font-family: Arial; } .container { width: 80%; padding: 20px; background-color: #fff; min-height: 300px; margin: 40px auto; border-radius: 10px; } table { border: solid thin #000; border-collapse: collapse; width: 100%; } tr { border-collapse: collapse; } td,th { padding: 6px 12px; border-bottom: solid thin #EEE; text-align: left; } </style> </head> <body> <div class="container"> <h1><?php echo $title ?></h1> <p><a href="<?php echo base_url() ?>index.php/laporan/export">Export ke Excel</a></p> <table> <thead> <tr> <th width="5%">KODE</th> <th>NAMA PROVINSI</th> </tr> </thead> <tbody> <?php foreach($provinsi as $provinsi) { ?> <tr> <td><?php echo $provinsi->id_provinsi ?></td> <td><?php echo $provinsi->nama_provinsi ?></td> </tr> <?php } ?> </tbody> </table> </div> </body> </html> Test hasil pengetikan kode dan Export ExcelUntuk menguji, buka browser Anda, lalu ketikkan alamat http. //localhost/laporan/index. php/laporan. Kemudian untuk mengujinya, klik tautan Ekspor Excel atau akses alamat http. //localhost/laporan/index. php/laporan/ekspor |