Reading Ms Excel(1997-2003) with PHP

XLS adalah format untuk file spreedsheet Ms Excel yang merupakan format Office 2003 atau yang lebih tua(untuk 2007, xlsx). Cara ini mungkin sangat berguna untuk menginput data yang jumlahnya sangat banyak, terlebih apabila data tersebut ada sudah di dalam file Excel.
Kebetulan gw lagi dapat proyek untuk sebuah perusahaan yang biasanya menggunakan XLS untuk mencatat katalog barang mereka.
Berikut ini adalah sebuah cara untuk dapat mengambil value dari Excel dengan bantuan sebuah script bernama PHP-ExcelReader(Bisa di dwonload dari sini, atau langsung ke SourceForge.org untuk mendapat rilis terakhirnya).
Sayangnya entah kenapa, Script ini cacat dari creatornya dan buat gw harus seharian berkutik di depan komputer ~
Sampai akhirnya gw menemukan jalan keluarnya.
Dalam README yang disertakan, disana hanya tertulis bukalah/execute file: “example.php” tetapi Kira-kira beginilah kisahnya apabila kalian membukanya langsung:
Oke untuk yang sudah agak biasa dengan PHP pasti tahu bahwa pada file “reader.php” dalam folder “Excel” tidak menemukan file “OLERead.php”. Let’s see apa yang ada di folder Excel:
Kita lihat disana memang tidak ada file bernama “OLERead.php” yang ada hanyalah file “OLERead.inc”. Untuk memper baikinya, Ubah nama “oleread.inc” menjadi “OLERead.inc”
Kemudian buka file “reader.php”, lihat line 31, disana Include pathnya salah kaprah…
Ubah menjadi :
Tinggal save file, kemudian close…. Then next Problem is:
Yap file contoh(jxlrwtest.xls) tidak bisa dibuka(on my case Excel 2007)… OMG… Cara mudah adalah Buat sebuah file excel baru untuk dibaca dan beri nama sama(bila ga mau repot), atau ganti nama file di dalam file “example.php”.
Dan hasilnya pun keluar dan juga next error tentunya:
Kolom tanggal disana akan di convert ke sebuah nilai yang tidak dapat dibaca manusia… Ini terjadi apabila Tanggal menggunakan beberapa type format:
Sebuah, saran gunakan custom formating “dd-mmm-yy” agar dapat dibaca.
BUT WAIT… apakah kalian melihat sesuatu yang aneh?
YES… tanggal dari excel akan 1 hari lebih lambat ketimbang yang dibaca oleh PHP. Hal ini juga dialami oleh beberapa pengguna script ini. Cara mengatasinya, bukalah file “reader.php”, sekitar line 968 temukan kode seperti berikut:
{
if ($numValue > 1) {
$utcDays = $numValue - ($this->nineteenFour ? SPREADSHEET_EXCEL_READER_UTCOFFSETDAYS1904 : SPREADSHEET_EXCEL_READER_UTCOFFSETDAYS);
$utcValue = round(($utcDays+1) * SPREADSHEET_EXCEL_READER_MSINADAY);
$string = date ($this->curformat, $utcValue);
$raw = $utcValue;
} else {
$raw = $numValue;
$hours = floor($numValue * 24);
$mins = floor($numValue * 24 * 60) - $hours * 60;
$secs = floor($numValue * SPREADSHEET_EXCEL_READER_MSINADAY) - $hours * 60 * 60 - $mins * 60;
$string = date ($this->curformat, mktime($hours, $mins, $secs));
}
return array($string, $raw);
}
Terutama di sekitar line 970 disana terdapat kode bertulisan:
Ubah menjadi :
Save dan lihat hasilnya
FINISH!!!!
FYI :
Ada cara lain yang lebih mudah untuk menginport data dari XLS yaitu dengan mengconvert file “xls” menjadi vile “csv”. APabila file csv dibuka dengan notepad atau text editor akan menjadi sbb:
1;10-Feb-09;try;";";q
2;11-Feb-09;yes;";";a
3;12-Feb-09;no;";";a
Dengan demikian Kalian tinggal membuat parsier-nya dengan menggunakan explode atau fungsi PHP lainnya…
Sayangnya Bos mana mau susah-susah nge-save-as sebagai csv segala sebelum dia mo import ke system ![]()
Enjoy ![]()
Popularity: 12% [?]
This Blog
My name is Rizky Gunawan, graduated(Waw, thanks God I can graduated :P ) from Computer Science Major. My Hobby is Coding, and my speciality is web development using PHP. Currently I'm working on some press company in Indonesia as Internal Software Developer.
Tags
ajax AMD AMD HSF Anime Anime Music Ar tonelico ATI Clannad core i5 Crysis GeForce Gigabyte hymmnos Intel Intel HSF javascript K-ON Kosaka Kirino Linux Microsoft Motherboard MSI Music Video mySQl Nvidia ONKYO Overclocking P55 PC Games Phenom II X4 php Project Skripsi Soundcard Thermalright thermalright Ultra 120 Extreme Touhou Ubuntu VGA Card Warhead Web Design web project Windows Windows 7 Wordpress ThemeReent Comment
Archives


