rowcount($sheet_index=0); $success =0; for($i=2; $i<=$jumlah_baris; $i++){ $tanggal = $data->val($i, 1); $buku = $data->val($i, 2); if($tanggal != "" && $buku != ""){ mysqli_querry($connect, "INSERT INTO transaksi VALUES ('', '$tanggal','$buku')"); $success++; } } unlink($_FILES['data_peminjaman']['name']); if($success >0){ header("location:index.php?menu=data_transaksi&pesan_success=Data berhasil disimpan"); }else{ header("location:index.php?menu=data_transaksi&pesan_success=Data gagal disimpan"); } ?> Membuat laporan format Excel dengan Codeigniter? Kenapa tidak. Nah tutorial kali ini akan membahas tentang cara bagaimana membuat laporan format Excel dengan Codeigniter dan PHPSpreadsheet (dulu namanya PHPExcel). Selamat belajar ya, semoga bisa dan mudah dipraktekkan. Show
Mari kita mulai belajarnya. Pastikan XAMPP Sudah aktifSebelum menginstall Composer, pastikan Anda telah menginstall XAMPP. Anda bisa mendownloadnya di link ini https://www.apachefriends.org/index.html. Untuk proses installasi XAMPP silakan tonton di video ini ya. Mengunduh Codeigniter versi terbaruSilakan buka situs www.codeigniter.com, lalu unduh versi terbarunya. Dalam tutorial kali ini Codeigniter yang digunakan versi 3.1.8. Menginstall CodeigniterSetelah proses download selesai, maka kita harus install Codeigniter tersebut. Installasi Codeigniter – Kursus Web programming Java Web Media Depok
Mengetes hasil installasi CodeigniterUntuk mengetes, buka browser web Anda, lalu ketik alamat http://localhost/laporanexcel. Kursus Codeigniter – Java Web Media DepokMengunduh PHPSpreadsheet dengan ComposerPHPSpreadsheet adalah library PHP yang berfungsi untuk mengelola file Excel dengan PHP. Anda bisa membaca situs resminya di https://phpspreadsheet.readthedocs.io/en/develop/. Dahulunya PHPSpreadsheet ini adalah PHPExcel. Untuk mengunduh PHPSpreadsheet, Anda harus menggunakan Composer. Cara installasi Composer silakan lihat pada tutorial: Cara install Composer di Windows. Mempersiapkan folder untuk mengunduhSebelum mendownload, siapkan folder yang akan kita gunakan sebagai tempat penyimpanan dependensi file-file PHPSpreadsheet yang akan digunakan.
Mengunduh PHPSpreadsheetBerikut langkah-langkah mengunduh PHPSpreadsheet dengan Composer:
Memindahkan atau Mengcopy folder excel ke folder laporanexcelSetelah file-file dependensi PHPSpreadsheet sudah diunduh di folder excel, maka langkah selanjutnya adalah memindahkan atau mencopy folder excel tersebut ke instalasi Codeigniter di folder laporanexcel. PHPSpreadsheet – Kursus Web DepokMempersiapkan DatabaseSelanjutnya adalah mempersiapkan database. Buka PHPMyAdmin Anda dengan mengakses http://localhost/phpmyadmin. Lalu buat database dengan nama laporanexcel. Membuat database MySQL – Kursus Web Programming JakartaKemudian import sample database berikut ini: 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;Import 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 sudah siap, maka saatnya kita masuk ke Codeigniter. Kursus Codeigniter – Java Web Media DepokBerikut langkah-langkah settingan Codeigniter yang harus dilakukan. Setting config.php (di folder laporanexcel/application/config)
Setting autoload.php (di folder laporanexcel/application/config)
Setting database.php (di folder laporanexcel/application/config)
Membuat Model Provinsi_model.php di folder laporanexcel/application/modelsModel berisi query database yang akan ditarik.
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 */ Membuat Controller Laporan.php di folder laporanexcel/application/controllersController berisi fungsi untuk diakses di URL (Alamat website).
Berikut kode Laporan.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 */ Membuat view laporan_view.php di folder laporalexcel/application/viewsViews berisi file tampilan laporan.
Berikut kode laporan_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> Mengetes Hasil pengetikan kode dan Export ExcelUntuk mengetes, buka browser Anda, lalu ketik alamat http://localhost/laporan/index.php/laporan. Lalu untuk mengetesnya, klik link Export Excelatau akses alamat http://localhost/laporan/index.php/laporan/export. |