Sebelumnya sudah kita bahas bagaimana membaca File excel berukuran besar dengan Spout. Sekarang saatnya membuat bagaimana cara menulis atau Export dari PHP ke Excel.

Baca: Codeigniter : Baca File Excel (Besar) dengan Spout 

Berikut langkah-langkahnya 

1. Siapkan Folder project Codeigniter anda 

2. Download Library Spout disini 

3. Copy Paste Folder Spout library ke  application/third_party   

Structure folder Spout akan seperti ini 

Jika sudah, Buat sebuah Controller Export.php 

<?php defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * Export to Excel 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;

class Export extends Publicapi_Controller
{
    public function index()
    {
        $writer = WriterFactory::create(Type::XLSX);
        //$writer = WriterFactory::create(Type::CSV); // for CSV files
        //$writer = WriterFactory::create(Type::ODS); // for ODS files

        //stream to browser
        $writer->openToBrowser("testing.xlsx");

        $header = [
            'No SP',
            'Tgl SP',
            'Payment'
        ];
        $writer->addRow($header); // add a row at a time

        $rows = [
            ['SP-903923', '2017-11-12', '35'],
            ['SP-6546', '2017-10-29', '7567'],
            ['SP-546546', '2017-08-29', '3453'],
            ['SP-675677', '2017-02-29', '4654'],
            ['SP-324344', '2017-12-29', '9789']
        ];

        $writer->addRows($rows); // add multiple rows at a time

        $writer->close();

    }
}

Bagi yang menggunakan data dari Database silahkan sesuaikan dan isi variable  $rows  dengan data dari database 

Jalankan di browser 

http://localhost/my-project/index.php/export

atau 

http://localhost/my-project/export 

Enaknya pakai Spout, kita tinggal define semuanya (Header dan Rows) di Array saja dan Sport akan otomatis membuatkan Column dan rows nya. Spout juga sangat bagus bagi data yang berukuran Besar / misal Ribuan sampai puluhan ribu rows. 

Selamat mencoba. jangan lupa Share yah.