Eksport Data ke Excel di Codeigniter 4 dengan PHPSPreadsheet
Kalao sebelumnya admin sudah membahas bagaimana cara import data dari excel ke dalam database dengan codeigniter 4 maka kali ini admin akan membahas kebalikannya yaitu bagaimana cara mengekspor data dari database ke excel dengan menggunakan codeigniter 4 dan library PHPSpreadsheet.
Meng eksport data dari database ke dalam format file excel sering menjadi permintaan seorang client saat memesan sebuah aplikasi. Sebagai seorang programer tentunya wajib memenuhi permintaan client tersebut. Hal tersebut digunakan untuk kebutuhan fitur pelaporan dalam aplikasi.
Library yang akan kita gunakan dalam tutorial cara eksport data ke excel di codeigniter 4 adalah PHPSpradsheet. PHPSpreadsheet merupakan library yang dibuat menggunakan bahasa pemrograman PHP yang menyediakan beberapa class yang dapat membantu kita dalam membaca dan menulis file Spreadsheet yang berformat seperti LibreOffice Calc dan Excel.
Cara Membuat Eksport Data Ke dalam Excel di Codeigniter
Seperti biasa langkah pertamanya silahkan install codeigniter 4 dulu dalam komputer atau laptop anda jika belum mengerti caranya silahkan baca Cara Installasi Codeigniter 4.
Langkah selanjutnya yang akan kita buat adalah menginstall library PHPSPreadsheet . Untuk installasi library PHPSpreadsheet ini kita menggunakan Composer silahkan buka composer anda kemudian arahkan ke folder root codeigniter 4 anda kemudian ketikan perintah berikut ini
composer require phpoffice/phpspreadsheet
Jika berhasil maka akan muncul volder baru dengan nama vendor seperti gambar berikut ini :
Menyiapkan Data
Silahkan siapkan data anda yang ada dalam database kali ini admin menggunakan data siswa yang ada dalam tabel siswa. berikut data yang akan admin gunakan.
Koneksi Database
Silahkan koneksikan database anda melalui file env atau database.php yang tersimpan dalam folder app/Config kali ini admin menggunakan file env (rename menjadi .env) silahkan buka file nya kemudian cari dan edit bagian yang seperti dibawah ini :
database.default.hostname = localhost
database.default.database = siswa
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
dan jangan lupa untuk mengganti CI_ENVIRONMENT = production menjadi development
Membuat Model
Selanjutnya kita membuat kelas model yang kita sesuaikan dengan data kita. Silahkan buat file baru dengan nama ModelSiswa.php kemudian simpan dalam folder app/Model. Dalam file ModelSiswa.php kita buat class model ModelSiswa
<?php namespace App\Models;
use CodeIgniter\Model;
class ModelSiswa extends Model
{
protected $table = 'siswa';
protected $primaryKey = 'NIS';
protected $allowedFields =['NamaSiswa','Alamat'];
}
Membuat Controller
Setelah kita sudah membuat model langkah selanjutnya adalah membuat file controller. Dalam file controller inilah yang akan menghandle proses export ke excel. Dalam controller ini kita akan membuat dua fungsi yaitu fungsi index dan fungsi exportSiswa. Kali ini admin menggunakan file Home.php file bawaan yang sudah tersimpan di folder app/Controllers buka file Home.php kemudian tuliskan kode berikut ini :
<?php namespace App\Controllers;
use App\Models\ModelSiswa;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class Home extends BaseController
{
public function __construct(){
$this->siswa = new ModelSiswa();
}
public function index(){
$data['Siswa'] = $this->siswa->findAll();
echo view('siswa',$data);
}
public function exportExcel()
{
$sisw = $this->siswa->findAll();
$spreadsheet = new Spreadsheet();
$spreadsheet->setActiveSheetIndex(0)
->setCellValue('A1', 'Nis')
->setCellValue('B1', 'Nama Siswa')
->setCellValue('C1', 'Alamat');
$column = 2;
foreach ($sisw as $sisdata) {
$spreadsheet->setActiveSheetIndex(0)
->setCellValue('A' . $column, $sisdata['NIS'])
->setCellValue('B' . $column, $sisdata['NamaSiswa'])
->setCellValue('C' . $column, $sisdata['Alamat']);
$column++;
}
$writer = new Xlsx($spreadsheet);
$filename = 'Data-Siswa-'. date('Y-m-d-His');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename=' . $filename . '.xlsx');
header('Cache-Control: max-age=0');
$writer->save('php://output');
}
}
Membuat Views
Setelah Model dan Controller sudah kita buat kita buat view untuk menampilkan data dan juga download excelnya. Silahkan buat file baru dengan nama siswa.php kemudian simpan dalam folder app/Views lalu masukan kode berikut ini :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Eksport Excel Codeigniter</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-3">
<a href="/home/exportExcel" class="btn btn-primary">Download Excel</a>
<table class="table table-bordered">
<thead>
<tr>
<th>NIS</th>
<th>Nama Siswa</th>
<th>Alamat Siswa</th>
</tr>
</thead>
<tbody id="contactTable">
<?php
if(!empty($Siswa)){
foreach($Siswa as $dt){
?>
<tr>
<td><?= $dt['NIS'] ?></td>
<td><?= $dt['NamaSiswa'] ?></td>
<td><?= $dt['Alamat'] ?></td>
</tr>
<?php
}
}else{
?>
<tr>
<td colspan="3">Tidak ada data</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</body>
</html>
Untuk mengetes kodenya kita runningkan dulu codeigniter 4 kita silahkan buka terminal atau CMD kemudian masuk ke folder host Codeigniter 4 kemudian ketikan php spark serve selanjutnya silahkan buka browser anda ketikan url berikut http://localhost:8080/ maka tampilannya akan seperti dibawah ini
Post a Comment for "Eksport Data ke Excel di Codeigniter 4 dengan PHPSPreadsheet"