Awalnya untuk fungsi membaca file format excel , gw makai plugin Excel reader class dari wiki-nya CodeIgniter yang dibikin oleh James Gifford. Awal-awalnya saat diuji coba lancar-lancar aja, tetapi kendala terjadi saat format data atau kolomnya udah komplek . Sehingga menimbulkan pesan seperti ini :

Padahal gede memorynya udah gw set dari dari 8MB -> 16=> 32 MB , sampai 64 MB terakhir, tapi tetap ga bisa-bisa juga. Gw yakin pasti ada caranya, tapi untuk mencari jawabannya harus ngenet dulu, google, tanya forum atau milis, tapi karena saat itu lagi malas keluar kosan. Gw putusin untuk memakai cara lain ala orang ganteng !

Ada dua pilihan gw saat itu :

  1. Memakai cara tradisional, yaitu mengkonvert file excel ke CSV , kemudian file CSV tersebut yang dibaca oleh program.
  2. Menggunakan class Spreadsheet_Excel_Reader yang didapatkan dari link ini .

Melalui pertapaan selama dua detik gw putusin untuk menggunakan pilihan kedua.

Nah, bagaimana caranya :

Tahap Instalasi

Saat kita mengunduh class Spreadsheet_Excel_Reader dari link ini maka didalamnya ada folder bernama “Excel” , yang terdiri dari file oleread.inc dan reader.php, copy-kan dua file tersebut ke folder :

htdocs/[folder_bekerja]/system/application/libraries/

Tentunya tempat directory document root anda bekerja.

Biar afdol , tambahkan kode di baris pertama file “reader.php” sehingga menjadi :

<?php if (!defined(‘BASEPATH’)) exit(‘No direct script access allowed’);

Buka file reader.php dan editlah baris 31 , menjadi :

require_once ‘oleread.inc’;

Ubahlan nama “reader.php” menjadi Spreadsheet_Excel_Reader.php.

Instalasi selesai.

Cara menggunakan

Buatlah file di controller dengan nama “baca_excel.php”, dan letakkan file excel anda di :

htdocs/[folder_bekerja]/public/upload/

pada artikel ini ke asumsikan nama filenya “dataexcel.xls” .

Kopas atau tulis koding berikut di “baca_excel.php” :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
 
class Baca_excel extends Controller {
 
    public function __construct() {
		parent::Controller() ;
    }
 
    public function index() {
		// Load the spreadsheet reader library
		$this->load->library(’spreadsheet_Excel_Reader’);
 
		// Set output Encoding.
		$this->spreadsheet_Excel_Reader->setOutputEncoding('CP1251');
 
		$file =  $_SERVER['DOCUMENT_ROOT']."/folder_bekerja/public/upload/dataexcel.xls" ;
 
		$this->spreadsheet_Excel_Reader->read($file);
 
		error_reporting(E_ALL ^ E_NOTICE);
 
		// Sheet 1
		$data = $this->spreadsheet_Excel_Reader->sheets[0] ;
 
		for ($i = 1; $i <= $data['numRows']; $i++) {
		for ($j = 1; $j <= $data['numCols']; $j++) {
		echo "\"".$data['cells'][$i][$j]."\",";
		}
		echo "br />";
		}
	}
}
 
    ?>

Buka browser, dan jalankan dengan alamat :

http://localhost/folder_bekerja/index.php/baca_excel/

Dan rasakan perubahannya … :D

Catatan :

Jika nama class “Spreadsheet_Excel_Reader” terlalu panjang bagi anda, silakan ganti nama classnya + method konstruktornya dan jangan lupa filenya, semuanya disesuaikan dengan nama yang anda inginkan. Sesuai dengan aturan dari CodeIgniter.

Laporkan kepada yang berwajib jika ada yang error ! :D