Cara menggunakan phpexcel

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

Mari kita mulai mempelajarinya

Pastikan XAMPP aktif

Sebelum 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 terbaru

Silahkan buka situs www. codeigniter. com, lalu unduh versi terbaru. Dalam tutorial ini, Codeigniter versi 3 digunakan. 1. 8

Cara menggunakan phpexcel
Download Codeigniter – WebGL Kursus Java Web Media Depok

Instal Codeigniter

Setelah proses download selesai, selanjutnya kita harus menginstal Codeigniter

Cara menggunakan phpexcel
Instalasi Codeigniter - Kursus Pemrograman Web Java Media Web Depok
  1. Buat folder laporan Excel di folder xampp/htdocs Anda. Dalam contoh ini xampp diinstal pada direktori D. /
  2. Ekstrak file Codeigniter yang diunduh ke folder laporan Excel
Cara menggunakan phpexcel
Kursus Codeigniter – Java Web Media Depok

Menguji hasil instalasi Codeigniter

Untuk menguji, buka browser web Anda, lalu ketikkan alamat http. //localhost/reportexcel

Cara menggunakan phpexcel
Kursus Codeigniter – Java Web Media Depok

Mengunduh PHPSpreadsheet dengan Composer

PHPSpreadsheet 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 diunduh

Sebelum mendownload siapkan folder yang akan kita gunakan sebagai tempat menyimpan dependencies file PHPSpreadsheet yang akan digunakan

  1. Buat folder bernama excel di direktori C. / atau D. / Anda
  2. Dalam contoh ini, direktori D digunakan. /. Lihat gambar berikut untuk lebih jelasnya
Cara menggunakan phpexcel
Laporan Excel dengan Codeigniter dan Spreadsheet – Java Web Media Depok

Mengunduh PHPSpreadsheet

Berikut adalah langkah-langkah untuk mendownload PHPSpreadsheet dengan Composer

  1. Klik Start Menu program Windows Anda, ketik CMD. Kemudian klik program Command Prompt
  2. Karena folder excelnya saya taruh di direktori D. /, lalu ketikkan kode d. di Prompt Perintah Anda. tekan enter
  3. Kemudian ketikkan perintah cd excel, lalu tekan Enter lagi. Artinya kita mengubah direktori untuk mengakses folder Excel yang telah dibuat.
    Cara menggunakan phpexcel
    Instal PHPSpreadsheet dengan Composer – Java Web Media
  4. Kemudian ketikkan perintah composer require phpoffice/phpspreadsheet. Lalu tekan Enter. Tunggu beberapa detik hingga proses pengunduhan selesai
  5. Jika proses download sudah selesai, akan muncul gambar seperti ini.
    Cara menggunakan phpexcel
    Instal PHPSpreadsheet – Java Web Media
  6. Kemudian periksa folder d. /excel yang telah kita buat sebelumnya. Jadi didalam folder tersebut akan ada beberapa file dan folder yang sudah di download oleh composer
Cara menggunakan phpexcel
Instal PHPSpreadsheet dengan Komposer – Kursus Media Web Java

Pindahkan atau Salin folder excel ke folder laporan excel

Setelah file dependensi PHPSpreadsheet sudah diunduh di folder excel, langkah selanjutnya adalah mentransfer atau menyalin folder excel ke instalasi Codeigniter di folder laporan excel

Cara menggunakan phpexcel
PHPSpreadsheet – Kursus Web Depok

Mempersiapkan Basis Data

Selanjutnya adalah mempersiapkan database. Buka PHPMyAdmin Anda dengan mengakses http. //localhost/phpmyadmin. Kemudian buat database dengan nama reportexcel

Cara menggunakan phpexcel
Membuat database MySQL - Kursus Pemrograman Web Jakarta

Kemudian 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;
Cara menggunakan phpexcel
Impor database MySQL – Kursus WebGL Depok

Maka akan menghasilkan database seperti di bawah ini

Cara menggunakan phpexcel
Basis Data Provinsi Seluruh Indonesia – Web Course Depok

Setting Database, Config dan Autoload di Codeigniter

Setelah database dan semua file dependensi siap, saatnya masuk ke Codeigniter

Cara menggunakan phpexcel
Kursus Codeigniter – Java Web Media Depok

Berikut langkah-langkah setting Codeigniter yang harus dilakukan

Pengaturan konfigurasi. php (dalam folder laporan excel/application/config)

  1. Buka file konfigurasi. php di dalam folder reportexcel/application/config
  2. Ubah kode (sekitar baris 26) dari $config['base_url'] = ”;
    be $config['base_url'] = 'http. //localhost/reportexcel';
  3. Simpan file

Pengaturan muatan otomatis. php (dalam folder laporan excel/application/config)

  1. Buka file pengisian otomatis. php di dalam folder reportexcel/application/config
  2. Ubah kode (sekitar baris 61) dari $autoload['libraries'] = array();
    be $autoload['libraries'] = array('database');
  3. Ubah kode (tentang baris 92) dari $autoload['helper'] = array();
    be $autoload['helper'] = array('url');
  4. Simpan file

Pengaturan basis data. php (dalam folder laporan excel/application/config)

  1. Buka file databasenya. php di dalam folder reportexcel/application/config
  2. Ubah kode ini
    'hostname' => 'localhost',
    'nama pengguna' => ”,
    'sandi' => ”,
    'database' => ”,
  3. Jadilah seperti ini
    'hostname' => 'localhost',
    'username' => 'akar',
    'sandi' => ”,
    'database' => 'reportexcel',
  4. Simpan file
Cara menggunakan phpexcel
Kursus Web Depok – Media Web Java

Buat Model  Model_province. php di dalam folder reportexcel/application/models

Model berisi query database yang akan digambar

  1. Buat file baru dengan nama Provinsi_model. php (ingat, huruf pertama harus kapital) di folder reportexcel/application/models
  2. Kemudian ketikkan kode ini

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/controllers

Pengontrol berisi fungsi untuk diakses di URL (Alamat Situs Web)

  1. Buat file Laporan. php di folder reportexcel/application/controllers
  2. Ketik kode ini
  3. Simpan file

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/views

Tampilan berisi file tampilan laporan

  1. Buat file report_view. php di folder reportexcel/application/views
  2. Ketik kode ini
  3. Simpan file

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 Excel

Untuk 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