Kita sudah beberapa kali menulis tutorial Export/Import file Excel dengan Spout Library dengan Codeigniter. Silahkan cek disini tutorial sebelumnya. Sekarang kita akan buat lagi tutorial Export excel dengan Spout Library.

Namun kali ini kita akan meng-export data kedalam multiple sheet di Excel. Ini seringkali kita hadapai tatkala membuat laporan-laporan dikantor atau project lainnya. 

Kenapa pakai Spout? 

Spout ini sangat simple, ringan (jauh lebih ringan dari Library lainnya) dan interfacenya paling mudah.

Mari kita mulai saja, Berikut langkah-langkahnya 

1. Siapkan Folder project Codeigniter anda 

2. Download Library Spout disini 

3. Copy Paste Folder Spout library ke  application/third_party

Kalau sudah, Structure folder Spout akan seperti ini 

Jika sudah, Buatlah sebuah Controller Export.php dan masukan Kode berikut 

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * Export to Excel multiple sheets with CI and Spout
 *
 * @author budy k
 *
 */

//load Spout Library
require_once APPPATH.'/third_party/spout/src/Spout/Autoloader/autoload.php';
//lets Use the Spout Namespaces
use Box\Spout\Writer\WriterFactory;
use Box\Spout\Common\Type;
use Box\Spout\Writer\Style\StyleBuilder;

class Export extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();

    }

    public function index()
    {
        // Setup Excel Header masing-masing Sheets
        $header_mhs = ['Nama Mahasiswa', 'Alamat', 'Nilai'];
        $header_dsn = ['Nama Dosen', 'Alamat', 'Gaji'];
        $header_kry = ['Nama Karyawan', 'Alamat', 'Gaji'];

        // simulate data dari database, kalau data kamu dari DB, silahkan
        // bentuk menjadi seperti ini

        $data_mhs = [
            ['Agus', 'Jl. Jaksa Jakarta', 90],
            ['Budy', 'Jl. Palmerah Jakarta', 70],
            ['Cecep', 'Jl. Sukacita Bandung', 77],
        ];

        $data_dsn = [
            ['Dr. Sutomo Ph.D', 'Jl. Patimura Jakarta', 7500000],
            ['Ir. Dedot Pekok', 'Jl. Cilincing Jakarta', 5600000],
            ['Sontoloyo S.kom M.kom', 'Jl. senayan Bandung', 4700000],
        ];

        $data_kry = [
            ['Nur soleh', 'Jl. bebas polusi Jakarta', 3200000],
            ['Denis', 'Jl. kovyor Belitung', 2600000],
            ['Sutarni', 'Jl. sudirman Jakarta', 2700000],
        ];

        // setup Spout Excel Writer, set tipenya xlsx
        $writer = WriterFactory::create(Type::XLSX);
        // download to browser
        $writer->openToBrowser('Contoh-Data-Saja.xlsx');
        // set style untuk header
        $headerStyle = (new StyleBuilder())
               ->setFontBold()
               ->build();


        // write ke Sheet pertama
        $writer->getCurrentSheet()->setName('MAHASISWA');
        // header Sheet pertama
        $writer->addRowWithStyle($header_mhs, $headerStyle);
        // data Sheet pertama
        $writer->addRows($data_mhs);

        // write ke Sheet kedua
        $writer->addNewSheetAndMakeItCurrent()->setName('DOSEN');
        // header Sheet kedua
        $writer->addRowWithStyle($header_dsn, $headerStyle);
        // data Sheet kedua
        $writer->addRows($data_dsn);

        // write ke Sheet ketiga
        $writer->addNewSheetAndMakeItCurrent()->setName('KAYRAWAN');
        // header Sheet ketiga
        $writer->addRowWithStyle($header_kry, $headerStyle);
        // data Sheet ketiga
        $writer->addRows($data_kry);


        // close writter
        $writer->close();

    }

}

Jika sudah, coba Jalankan di browser 

http://localhost/your-ci/index.php/export

Jika berhasil berikut adalah Outputnya di Excel 

Nah untuk menambah Style seperti background, border dll selengkapnya kamu bisa baca di Spout Excel Library