Home > MS Excel, Perl > Perl Membaca File Excel

Perl Membaca File Excel

Modul yang diperlukan

Agar script perl bisa membaca file XLS, maka diperlukan modul tambahan sbb:

  1. Module-Build (jika belum diinstall secara default, diperlukan untuk meng-compile dan install modul-modul lainnya dibawah ini)
  2. Spreadsheet::ParseExcel;
  3. OLE-Storage
  4. IO-stringy

Installasi Modul

Agak rumit tapi bisa. Rumitnya karena modul-modul tersebut belum ada package nya sehingga tidak bisa diinstall menggunakan Yum dan kawan-kawan.

Jadi masing-masing modul harus diinstall secara manual menggunakan Makefile yang terdapat di masing-masing source code module tersebut.

Langkah pertama adalah download modul ybs. Misalnya Spreadsheet::ParseExcel. Lokasi downloadnya dapat dicari dari search.cpan.org. Cari nama modul di kolom search. Kemudian lihat di bagian Download link (di sebelah kanan halaman).

Copy link tersebut lalu download menggunakan program download yang anda sukai, misalnya wget.

# wget http://search.cpan.org/CPAN/authors/id/S/SZ/SZABGAB/Spreadsheet-ParseExcel-0.33.tar.gz

Jika sudah berhasil download, maka extract file tersebut ke sembarang direktori.

# tar xvfpz Spreadsheet-ParseExcel-0.33.tar.gz

Lalu masuk ke direktori hasil extract:

# cd Spreadsheet-ParseExcel-0.33

Baca cara installnya pada file README (atau INSTALL).  Menurut file tersebut, cara installnya ada beberapa model:

INSTALLATION
The module can be installed using the standard Perl procedure:
perl Build.PL
./Build
./Build test
./Build install

or
perl Makefile.PL
make
make test
make install

# You may need to be root
make clean      # or make realclean

or using CPAN.pm or CPANPLUS.pm
cpan Spreadsheet::ParseExcel

Misalnya kita ambil cara pertama, maka langkah yang dilakukan adalah menjalankan perintah:

# perl Build.PL

Setelah sukses, lanjutkan ke perintah:

# ./Build

Kemudian perintah:

# ./Build test

Diakhiri dengan perintah (untuk yang ini anda harus login sebagai root):

# ./Build install

Setelah sukses install, maka modul ini sudah siap digunakan. Lakukan installasi modul yang lainnya (OLE-Storage dan IO-stringly)  dengan cara yang sama seperti di atas.

Contoh Script untuk Membaca Excel

  1. use Spreadsheet::ParseExcel;
  2. my $oExcel = new Spreadsheet::ParseExcel;
  3. my $oBook = $oExcel->Parse($file);
  4. my($iR, $iC, $oWkS, $oWkC);
  5. for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
  6.     $oWkS = $oBook->{Worksheet}[$iSheet];
  7.     for(my $iR = $oWkS->{MinRow};
  8.         defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow};
  9.         $iR++)    {
  10.             my $a = $oWkS->{Cells}[$iR][0];
  11.             my $b = $oWkS->{Cells}[$iR][1];
  12.             print $a->Value, " ", $b->Value;
  13.         }
  14. }

Baris 1, adalah pemanggilan modul Spreadsheet::Excel. Baris 2 adalah pendefinisian object variabel yang merepresentasikan pemroses file Excel. Baris 3 mendefinisikan Workbook Excel yang hendak dibaca yang nama filenya ditentukan diparameter.

Baris 4 adalah definisi variabel lokal yang akan digunakan selama proses pembacaan file yaitu: $iR indeks baris, $iC indeks kolom, $oWkS suatu worksheet, dan $oWkC suatu cell.

Baris 5 adalah looping untuk setiap worksheet yang ada pada file Excel yang dibaca. Baris 6 untuk setiap worksheet yang terbaca, simpan referensinya ke variabel $oWkS.

Baris 7 looping untuk setiap baris yang terdapat pada worksheet yang sedang dibaca dimulai dari baris yang paling kecil ($oWkS->{MinRow}) sampai dengan baris terakhir ( $oWkS->{MaxRow} ). Yang dilakukan setiap looping baris adalah membaca isi cell pada baris tersebut, yaitu dengan cara  $oWkS->{Cells}[$iR][0] seperti pada baris 10 dan 11, dimana array yang kedua (dalam hal ini 0) adalah indeks kolom pada baris tersebut, dimulai dari 0.

Terakhir adalah mengambil nilai pada cell tersebut dengan cara memanggil properti Value object cell seperti pada baris 12.

Akhmad Daniel Sembiring

vITraining.com – Qualified IT Products, Outsourcing, and Services

Ligarwangi.com – Linux, E-book, Coffee, Gift, etc

  • Share/Bookmark
  1. No comments yet.
  1. No trackbacks yet.
This site uses a Hackadelic PlugIn, Hackadelic SEO Table Of Contents 1.6.0.