Cara Membuat Export Excel Di Codeigniter

Cara Membuat Export dan Import Data Excel di Codeigniter dengan PHPExcel

Salah satu fitur yang sering dibutuhkan dalam aplikasi web adalah kemampuan untuk mengimpor dan mengekspor data dalam format excel. Dalam artikel ini, kita akan membahas cara untuk membuat fitur tersebut di dalam aplikasi Codeigniter dengan menggunakan library PHPExcel.

Sebelum memulai, pastikan bahwa PHPExcel sudah terpasang di dalam sistem Anda. Jika belum, Anda dapat mengunduhnya di situs resmi PHPExcel.

## Cara Membuat Export Data Excel dengan PHPExcel dan Codeigniter

Pertama-tama, kita akan membahas cara membuat fitur untuk mengekspor data dari aplikasi Codeigniter ke dalam format excel.

### Langkah 1: Mendefinisikan Data yang akan diekspor

Hal pertama yang perlu dilakukan adalah menentukan data apa yang akan diekspor. Sebagai contoh, kita akan membuat fitur untuk mengekspor data dari tabel `produk` di dalam database.

“`php
public function export_excel()
// Load database dan otentikasi
$this->load->database();
$this->load->library(‘session’);

// Ambil data dari tabel produk
$query = $this->db->get(‘produk’);
$produk = $query->result();

// Set judul dan header untuk file excel
$judul = “Data Produk”;
$header = array(
‘Nama Produk’,
‘Kategori’,
‘Harga’
)

// Load library PHPExcel
$this->load->library(‘PHPExcel’);
$objPHPExcel = new PHPExcel();

// Set properties untuk file excel
$objPHPExcel->getProperties()->setCreator(“Nama Anda”)
->setLastModifiedBy(“Nama Anda”)
->setTitle($judul)
->setSubject($judul)
->setDescription($judul);

// Set header kolom pada sheet pertama
$objPHPExcel->setActiveSheetIndex(0);
$col = 0;
foreach ($header as $h)
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1, $h);
$col++;

// Set data untuk setiap kolom
$row = 2;
foreach($produk as $p)
$col = 0;
foreach($p as $field)
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $field);
$col++;

$row++;

// Buat file excel dan download
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5’);
header(‘Content-Type: application/vnd.ms-excel’);
header(‘Content-Disposition: attachment;filename=”‘.$judul.’.xls”‘);
header(‘Cache-Control: max-age=0’);
$objWriter->save(‘php://output’);

“`

### Langkah 2: Memanggil Function dari View

Baca Juga :  Cara Membuat Data Jarak Versus Time Di Excel

Untuk memanggil function `export_excel` ini dari view, Anda dapat membuat sebuah link yang merujuk ke path controller yang mengurus function tersebut. Berikut adalah contoh kode link yang dapat digunakan.

“`html
” enctype=”multipart/form-data” method=”post”>


“`

Kode di atas akan menampilkan sebuah formulir untuk mengunggah file excel, yang akan dikirimkan ke fungsi `import_excel` pada controller.

### Langkah 2: Mendefinisikan Function untuk Mengimpor Data Excel

Selanjutnya, kita akan membuat fungsi di dalam controller yang bertanggung jawab untuk mengimpor data dari file excel. Berikut adalah contoh kode:

“`php
public function import_excel()
// Load library PHPExcel
$this->load->library(‘PHPExcel’);

// Load plugin PHPExcel IOFactory
$this->load->library(‘PHPExcel/IOFactory’);

// Ambil nama file
$nama_file = $_FILES[‘file’][‘name’];

// Cek apakah file excel atau bukan
$extensi = pathinfo($nama_file, PATHINFO_EXTENSION);
if($extensi == ‘xls’)
// Gunakan plugin IOFactory untuk membaca file excel
$inputFileType = ‘Excel5’;
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
else if($extensi == ‘xlsx’)
$inputFileType = ‘Excel2007’;
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
else
// Tampilkan pesan kesalahan jika bukan file excel
$this->session->set_flashdata(‘message’, ‘Format File Tidak Didukung!’);
redirect(‘nama_controller’);

// Baca file excel dan set worksheet yang akan digunakan
$objPHPExcel = $objReader->load($_FILES[‘file’][‘tmp_name’]);
$worksheet = $objPHPExcel->getActiveSheet();

// Ambil jumlah baris dan kolom yang ada di dalam file dan database
$row_max = $worksheet->getHighestRow();
$col_max = $worksheet->getHighestColumn();

// Mendefinisikan variabel untuk menampung data
$data = array();

// Mengambil data dari file excel
for ($row = 2; $row <= $row_max; $row++) $row_data = array( 'nama_produk' => $worksheet->getCellByColumnAndRow(0, $row)->getValue(),
‘kategori’ => $worksheet->getCellByColumnAndRow(1, $row)->getValue(),
‘harga’ => $worksheet->getCellByColumnAndRow(2, $row)->getValue()
);
array_push($data, $row_data);

// Load database dan proses upload data
$this->load->database();
$this->load->library(‘session’);
$this->db->trans_start();

foreach ($data as $d)
$this->db->insert(‘produk’, $d);

$this->db->trans_complete();

// Tampilkan pesan sukses dan redirect ke halaman utama
$this->session->set_flashdata(‘message’, ‘Data Berhasil Diimport’);
redirect(‘nama_controller’);

Baca Juga :  Cara Membuat Grafik Pemakaian Listrik Di Excel

“`

### Langkah 3: Menambahkan Error Handling

Terakhir, Anda harus menambahkan beberapa kode untuk menangani kesalahan jika ada kesalahan ketika mengimpor data excel. Anda dapat menggunakan kode di bawah ini sebagai referensi:

“`php
if($row_max < 2 || $col_max != 'C') // Tampilkan pesan kesalahan jika format tidak sesuai $this->session->set_flashdata(‘message’, ‘Format File Tidak Sesuai!’);
redirect(‘nama_controller’);

// Menggunakan library form_validation untuk memvalidasi input dari user
$this->load->library(‘form_validation’);
for($row = 2; $row <= $row_max; $row++)min_length[4]'); $this->form_validation->set_rules(‘kategori’, ‘Kategori’, ‘required
“`

Dengan menyelesaikan langkah-langkah di atas, Anda telah berhasil menambahkan fitur impor dan ekspor data excel di dalam aplikasi Codeigniter Anda. Anda dapat menyesuaikan fungsi ini dengan kebutuhan Anda sendiri, seperti menambahkan fitur pencarian dan pengurutan.

## Frequently Asked Questions

1. Apa itu PHPExcel?

PHPExcel adalah library PHP yang dapat digunakan untuk memproses file excel. Dalam aplikasi web, PHPExcel dapat digunakan untuk mengekspor dan mengimpor data dari dan ke dalam file excel.

2. Apakah PHPExcel masih dikembangkan oleh komunitas PHP?

Tidak, sejak tahun 2017, PHPExcel sudah tidak dikembangkan lagi oleh komunitas PHP. Pengembangan library ini telah dihentikan dan digantikan dengan library lain seperti PhpSpreadsheet.

Untuk lebih memahami cara menggunakan PHPExcel di Codeigniter, Anda bisa melihat video tutorial berikut: