Selamat datang di warungbelajar, dalam tutorial kali ini akan melanjutkan pembahasan dari seri tutorial belajar Codeigniter 3, pada part 25 kita akan membahas mengenai bagaimana cara untuk membuat report dalam bentuk excel dengan menggunakan PhpSpreadsheet di Codeigniter 3. Show Untuk tutorial ini kita akan belajar membuat export data dalam bentuk excel, dan data itu kita ambil dari database, baik kita akan langsung mulai pembahasannya. Install CodeigniterUntuk langkah awal pastikan anda telah memiliki project codeigniter, untuk tutorial instalasi dari codeigniter, bisa melihat di tutorial kita sebelumnya : Cara Menginstall Codeigniter Dalam contoh ini untuk folder project saya beri nama belajarcodeigniter
Setting Autoload ComposerKita akan menginstall Phpspreadsheet dengan menggunakan Composer, karena itu kita perlu mengaktifkan autoload untuk composer. Silahkan buka file dengan nama application/config/config.php, kemudian isi bagian autoload composer menjadi seperti dibawah ini : 1 $config['composer_autoload'] = "vendor/autoload.php";
Install Phpspreadsheet dengan ComposerPastikan anda sudah menginstall Composer, untuk instalasi Composer bisa download disini : Klik Disini Berikutnya buka Command Prompt / Terminal, dan akses folder project codeigniter anda, dalam contoh ini adalah folder belajarcodeigniter, lalu tuliskan perintah seperti berikut ini : 1 composer require phpoffice/phpspreadsheet Tunggu proses downloadnya, hingga selesaiPersiapkan databaseDalam contoh ini kita akan belajar untuk menampilkan data dari database, dan ditampilkan dalam bentuk Excel, sehingga kita perlu mempersiapkan database terlebih dahulu. Dalam contoh ini kita buat database dengan nama db_siswa, dan kita juga membuat tabel siswa didalamnya dengan kolom sebagai berikut :
Berikutnya kita akan isi tabel dengan data sebagai berikut :
kd_siswa(1), nama (Budi Hermawan), kelas (3MM1), jenis_kelamin(PRIA), alamat (Wonocolo, Surabaya)
kd_siswa(2), nama (Cika Larasati), kelas (3MM1), jenis_kelamin(WANITA), alamat (Sedati, Sidoarjo)
disini kita tidak membahas detail teknis bagaimana membuat database dan tabel didalamnya ya.. anda bisa gunakan Query SQL berikut ini untuk dapat membuat database disertai tabelnya : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 -- phpMyAdmin SQL Dump -- version 5.0.2 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Generation Time: Jun 11, 2020 at 01:01 PM -- Server version: 10.4.11-MariaDB -- PHP Version: 7.4.5
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */;
-- -- Database: `db_siswa` -- CREATE DATABASE IF NOT EXISTS `db_siswa` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE `db_siswa`;
-- --------------------------------------------------------
-- -- Table structure for table `siswa` --
CREATE TABLE `siswa` ( `kd_siswa` int(11) NOT NULL, `nama` varchar(255) NOT NULL, `kelas` varchar(5) NOT NULL, `jenis_kelamin` enum('PRIA','WANITA') NOT NULL, `alamat` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- -- Dumping data for table `siswa` --
INSERT INTO `siswa` (`kd_siswa`, `nama`, `kelas`, `jenis_kelamin`, `alamat`) VALUES (1, 'Budi Hermawan', '3MM1', 'PRIA', 'Wonocolo, Surabaya'), (2, 'Cika Larasati', '3MM1', 'WANITA', 'Sedati, Sidoarjo');
-- -- Indexes for dumped tables --
-- -- Indexes for table `siswa` -- ALTER TABLE `siswa` ADD PRIMARY KEY (`kd_siswa`);
-- -- AUTO_INCREMENT for dumped tables --
-- -- AUTO_INCREMENT for table `siswa` -- ALTER TABLE `siswa` MODIFY `kd_siswa` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Setting Database di CodeigniterBerikutnya kita akan setting codeigniter agar dapat mengakses database, silahkan buka file application/config/autoload.php, lalu ubah code dibawah ini : 1 $autoload['libraries'] = array(); Menjadi 1 $autoload['libraries'] = array('database');
Berikutnya silahkan buka file application/config/database.php lalu konfigurasi settingan database, seperti berikut ini : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 $db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'db_siswa', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE ); dalam contoh diatas saya hanya lakukan konfigurasi pada :
Membuat ModelKarena nanti kita melakukan komunikasi dengan database sehingga kita perlu membuat model, silahkan buat model dengan nama Siswa_model.php didalam folder application/models untuk codenya adalah sebagai berikut : 1 2 3 4 5 6 7 8 9 10 11 <?php defined('BASEPATH') OR die('No direct script access allowed');
class Siswa_model extends CI_Model {
public function getAll() { $data_siswa = $this->db->get('siswa')->result(); return $data_siswa; }
} Keterangan :
Membuat ControllerBerikutnya kita akan membuat controller dimana didalamnya kita akan buat method excel yang nantinya akan kita akses melalui browser untuk menampilkan laporan Excel, dengan menggunakan Library PHPSpreadsheet buat controller dengan nama Siswa.php didalam folder application/controllers/Siswa.php, dengan code seperti berikut ini : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 <?php
use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; class Siswa extends CI_Controller{
public function excel() { $this->load->model('siswa_model'); $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'No'); $sheet->setCellValue('B1', 'Nama'); $sheet->setCellValue('C1', 'Kelas'); $sheet->setCellValue('D1', 'Jenis Kelamin'); $sheet->setCellValue('E1', 'Alamat'); $siswa = $this->siswa_model->getAll(); $no = 1; $x = 2; foreach($siswa as $row) { $sheet->setCellValue('A'.$x, $no++); $sheet->setCellValue('B'.$x, $row->nama); $sheet->setCellValue('C'.$x, $row->kelas); $sheet->setCellValue('D'.$x, $row->jenis_kelamin); $sheet->setCellValue('E'.$x, $row->alamat); $x++; } $writer = new Xlsx($spreadsheet); $filename = 'laporan-siswa'; header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'. $filename .'.xlsx"'); header('Cache-Control: max-age=0'); $writer->save('php://output'); } } ?> Keterangan :
Melakukan testing menampilkan laporan ExcelBerikutnya kita akan coba mengakses method excel di controller siswa untuk menampilkan laporan Excel, dengan alamat : localhost/belajarcodeigniter/index.php/siswa/excel maka akan ditampilkan laporan berupa file Excel, karena kita menggunakan library phpspreadsheet Untuk teman teman yang ingin download source code hasil : Download Source Code
Baik sekian dulu tutorial kali ini, kita sudah belajar untuk membuat report Excel dengan menggunakan PHPSpreadsheet di Codeigniter 3, jika ada yang ingin didiskusikan silahkan di kolom komentar
ANDA INGIN SERIUS BELAJAR FRAMEWORK CODEIGNITER ?Seperti yang anda ketahui bahwa saat ini skill di bidang pemrograman sangatlah dibutuhkan, salah satunya adalah pemograman PHP. Paket Tutorial ini berisi video tutorial belajar pemrograman berbahasa indonesia, cocok sekali untuk anda yang sedang belajar Framework PHP Codeigniter, bahkan untuk orang awam sekalipun. Paket Tutorial ini juga dilengkapi dengan study kasus yang akan mempermudah pemahaman anda dalam belajar pemrograman, Mari berinvestasi untuk menambah skill dalam menguasai Framework PHP Codeigniter |