Sobatcoding.com - Export Excel CodeIgniter 4
Pada artikel kali ini akan membahas tentang export data ke excel di Codeigniter 4.
Export data pada sebuah aplikasi sangatlah penting. Kenapa? Karena hampir semua user aplikasi membutuhkan sebuah laporan dalam bentuk output excel, pdf ataupun csv. Laporan ini biasanya akan di print out dan diberikan kepada atasan untuk dianalisa lebih lanjut.
Ada beberapa library yang bisa digunakan oleh codeigniter untuk export data ke excel, anatara lain sebagai berikut:
Pada kesempatan kali ini, admin akan menggunakan library Spout untuk export data ke excel. Kenapa admin menggunakan Spout sebagai pilihan?
Ada beberapa alasan mengapa admin menggunakan library Spout sebagai pilihan, antara lain:
Requirment untuk install library spout adalah sebagai berikut:
Ada dua cara untuk install library spout yaitu menggunakan composer atau secara manual. Installasi menggunakan composer lebih di rekomendasikan
Jalankan perintah berikut:
composer require box/spout
Tunggu hingga proses download selesai.
//sesuaikan dengan path folder library spout berada
require_once '[PATH/TO]/src/Spout/Autoloader/autoload.php';
Buatlah sebuah controller bernama Export.php dan masukkan kode seperti di bawah ini:
<?php
namespace App\Controllers;
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
use Box\Spout\Writer\Common\Creator\Style\StyleBuilder;
use Box\Spout\Writer\Common\Creator\Style\BorderBuilder;
use Box\Spout\Common\Entity\Style\Color;
use Box\Spout\Common\Entity\Style\Border;
use Box\Spout\Common\Entity\Row;
class Export extends BaseController
{
public function excel()
{
$headers = ["No", "Nama", "Alamat"];
/**
* Data Array yang akan di export
*/
$array = [
[1, "Adi Nugroho", "Jl. Merpati Indah No. 2"],
[2, "Silvia Chayati", "Jl. Garuda No. 20"]
];
$writer = WriterEntityFactory::createXLSXWriter();
/**
* $fileName adalah nama file excel yang nantinya akan di export
*/
$fileName = "first-export-excel-spout.xlsx";
$writer->openToBrowser($fileName);
/** Tambahkan beberapa style menggunakan StyleBuilder */
$border = (new BorderBuilder())
->setBorderBottom(Color::BLACK, Border::WIDTH_THIN, Border::STYLE_SOLID)
->setBorderTop(Color::BLACK, Border::WIDTH_THIN, Border::STYLE_SOLID)
->setBorderLeft(Color::BLACK, Border::WIDTH_THIN, Border::STYLE_SOLID)
->setBorderRight(Color::BLACK, Border::WIDTH_THIN, Border::STYLE_SOLID)
->build();
$styleHeader = (new StyleBuilder())
->setFontBold()
->setBackgroundColor(Color::rgb(222, 222, 222))
->setBorder($border)
->build();
$style = (new StyleBuilder())
->setBorder($border)
->build();
$rowFromValues = WriterEntityFactory::createRowFromArray($headers, $styleHeader);
$writer->addRow($rowFromValues);
foreach($array as $k=>$val)
{
$rowFromValues = WriterEntityFactory::createRowFromArray($val, $style);
$writer->addRow($rowFromValues);
}
$writer->close();
}
}
Perhatikan kode di atas.
Kita mempunyai sebuah variable bernama $headers dan $array.
Variable $headers berisi data header kolom yang berisi No, Nama dan Alamat.
Sedangkan variable $array berisi data array yang akan kita export nantinya.
Silahkan kalian akses URL http://localhost:8080/export/excel di browser masing-masing. Maka secara otomatis akan menghasilkan file excel yang bernama first-export-excel-spout.xlsx.
Sekian tutorial kali ini. Semoga bermanfaat.
Jika teman-teman memiliki pertanyaan atau saran mengenai artikel ini, jangan ragu untuk meninggalkan komentar pada form di bawah ini.
Komentar 0