Cara menggunakan phpexcel date format

 
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.

Mari kita mulai belajarnya.

Pastikan XAMPP Sudah aktif

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

Silakan buka situs www.codeigniter.com, lalu unduh versi terbarunya. Dalam tutorial kali ini Codeigniter yang digunakan versi 3.1.8.

Cara menggunakan phpexcel date format
Mendownload Codeigniter – Kursus WebGL Java Web Media Depok

Menginstall Codeigniter

Setelah proses download selesai, maka kita harus install Codeigniter tersebut.

Cara menggunakan phpexcel date format
Installasi Codeigniter – Kursus Web programming Java Web Media Depok
  1. Buat folder laporanexcel pada folder xampp/htdocs Anda. Dalam contoh ini xampp diinstall pada directory D:/
  2. Extract file Codeigniter yang telah diunduh ke folder laporanexcel tersebut.
Cara menggunakan phpexcel date format
Kursus Codeigniter – Java Web Media Depok

Mengetes hasil installasi Codeigniter

Untuk mengetes, buka browser web Anda, lalu ketik alamat http://localhost/laporanexcel.

Cara menggunakan phpexcel date format
Kursus Codeigniter – Java Web Media Depok

Mengunduh PHPSpreadsheet dengan Composer

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

Sebelum mendownload, siapkan folder yang akan kita gunakan sebagai tempat penyimpanan dependensi file-file PHPSpreadsheet yang akan digunakan.

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

Mengunduh PHPSpreadsheet

Berikut langkah-langkah mengunduh PHPSpreadsheet dengan Composer:

  1. Klik Start Menu program Windows Anda, ketik CMD. Lalu klik program Command Prompt.
  2. Karena saya meletakkan folder excel di directory D:/, maka ketik kode d: pada perintah Command Prompt Anda. Tekan Enter
  3. Lalu ketik perintah cd excel, lalu tekan Enter lagi. Ini artinya kita change directory untuk mengakses folder excel yang telah dibuat.
    Cara menggunakan phpexcel date format
    Instal PHPSpreadsheet with Composer – Java Web Media
  4. Lalu ketik perintah composer require phpoffice/phpspreadsheet. Lalu tekan Enter. Tunggu beberapa saat sampai proses download selesai.
  5. Jika proses download selesai, maka akan muncul gambar seperti ini.
    Cara menggunakan phpexcel date format
    Install PHPSpreadsheet – Java Web Media
  6. Lalu periksa folder d:/excel yang telah kita buat sebelumnya. Maka di dalam folder tersebut akan ada beberapa file dan folder yang telah diunduh oleh composer.
Cara menggunakan phpexcel date format
Instal PHPSpreadsheet dengan Composer – Kursus Java Web Media

Memindahkan atau Mengcopy folder excel ke folder laporanexcel

Setelah 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.

Cara menggunakan phpexcel date format
PHPSpreadsheet – Kursus Web Depok

Mempersiapkan Database

Selanjutnya adalah mempersiapkan database. Buka PHPMyAdmin Anda dengan mengakses http://localhost/phpmyadmin. Lalu buat database dengan nama laporanexcel.

Cara menggunakan phpexcel date format
Membuat database MySQL – Kursus Web Programming Jakarta

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

Maka akan menghasilkan database seperti di bawah ini:

Cara menggunakan phpexcel date format
Database Provinsi Se-Indonesia – Kursus Web Depok

Setting Database, Config dan Autoload di Codeigniter

Setelah database dan semua file dependensi sudah siap, maka saatnya kita masuk ke Codeigniter.

Cara menggunakan phpexcel date format
Kursus Codeigniter – Java Web Media Depok

Berikut langkah-langkah settingan Codeigniter yang harus dilakukan.

Setting config.php (di folder laporanexcel/application/config)

  1. Buka file config.php di folder laporanexcel/application/config
  2. Ubah kode (kira-kira pada baris 26) dari $config[‘base_url’] = ”;
    menjadi $config[‘base_url’] = ‘http://localhost/laporanexcel’;
  3. Simpan file tersebut

Setting autoload.php (di folder laporanexcel/application/config)

  1. Buka file autoload.php di folder laporanexcel/application/config
  2. Ubah kode (kira-kira pada baris 61) dari $autoload[‘libraries’] = array();
    menjadi $autoload[‘libraries’] = array(‘database’);
  3. Ubah kode (kira-kira pada baris 92) dari $autoload[‘helper’] = array();
    menjadi $autoload[‘helper’] = array(‘url’);
  4. Simpan file tersebut

Setting database.php (di folder laporanexcel/application/config)

  1. Buka file database.php di folder laporanexcel/application/config
  2. Ubah kode ini:
    ‘hostname’ => ‘localhost’,
    ‘username’ => ”,
    ‘password’ => ”,
    ‘database’ => ”,
  3. Menjadi seperti ini:
    ‘hostname’ => ‘localhost’,
    ‘username’ => ‘root’,
    ‘password’ => ”,
    ‘database’ => ‘laporanexcel’,
  4. Simpan file tersebut
Cara menggunakan phpexcel date format
Kursus Web Depok – Java Web Media

Membuat Model Provinsi_model.php di folder laporanexcel/application/models

Model berisi query database yang akan ditarik.

  1. Buat file baru dengan nama Provinsi_model.php (ingat, huruf pertama harus capital) di folder laporanexcel/application/models.
  2. Lalu ketik 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 */

Membuat Controller Laporan.php di folder laporanexcel/application/controllers

Controller berisi fungsi untuk diakses di URL (Alamat website).

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

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

Views berisi file tampilan laporan.

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

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 Excel

Untuk 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.