Monday, May 7, 2018

Cara mudah instal LIBXL di ubuntu

Cara mudah instal LIBXL di ubuntu

LIBXL merupakan sebuah library yang dapat memudahkan kita dalam mengolah data berupa spreadsheet atau yang lebih kita kenal dengan excel. LibXL dapat membaca dan menulis file Excel tanpa menggunakan Microsoft Excel dan .NET framework atau aplikasi spreadsheet lainnya. Fitur yang ada di LIBXL mudah digunakan dan kuat untuk pemrosesan data dalam skala besar.

LibXL dapat membantu aplikasi kamu dalam mengekspor dan mengimpor data ke atau dari file Excel. Library ini dapat digunakan dalam bahasa pemrograman seperti C, C++, C#, Delphi, Fortran dan lainnya. Mendukung format biner Excel 97-2003 (xls) dan format xml Excel 2007-2016 (xlsx / xlsm). Mendukung platform Unicode dan 64-bit. Library ini mendukung OS seperti linux, widows dan mac.

Barusan adalah sedikit intermezo seputar libxl, nah dipembahasan kali ini saya ingin membahas seputar cara instal library libxl di linux, karena sebelumnya saya sempat kesulitan untuk memasang libxl di linux, cari tutorial sana sini masih belum berhasil dan pada akhirnya berhasil juga.

Proses instalasi libxl di linux cukup panjang, tapi tenang, di tulisan ini saya sudah buat semuanya jadi ringkas tanpa ribet. Cukup satu, dua tiga kali aksi instalasi beres, asal kamu dapat pastikan perangkat kamu terhubung dengan internet.

Requirement instalasi
  • Ubuntu 16.04 64bit
  • PHP5.6 from ondrej/php ppa
  • Libxl 3.8.0
  • unzip, wget, dan
  • sudo access 
Cara ini bisa kamu coba untuk ubuntu versi tebaru 18.04.

INSTALASI

Pertama, salin kode di bawah ini, lalu simpan dengan ekstensi .sh . Pada bagian LIBXL_VERSION dan LIBXL_ARCHIVE_VERSION kamu bisa sesuaikan versinya dengan versi libxl yang ingin kamu instal. Agar mudah kamu bisa download langsung kode-nya di akun gist saya di : https://gist.github.com/dyazincahya/f3bc2497e6fc476a689b2827eb49d849


TMP_DIR=/tmp

# LibXL params
LIBXL_VERSION=3.8.0
LIBXL_ARCHIVE_VERSION=3.8.0.0
LIBXL_INSTALL_PATH="/opt/libxl-$LIBXL_VERSION"
LIBXL_URL="http://www.libxl.com/download"
LIBXL_ARCHIVE="libxl-lin-$LIBXL_VERSION.tar.gz"


# PHP params
PHP_VERSION=5.6
PHP_CONFIG=`which php-config$PHP_VERSION`
PHPIZE=`which phpize$PHP_VERSION`
PHP_MODS_AVAILABLE_PATH=/etc/php/$PHP_VERSION/mods-available
PHPENMOD="phpenmod -v $PHP_VERSION"

# php_excel params
PHP_EXCEL_URL=https://github.com/Gerst20051/php_excel/archive/Excel-1.0.2.1-PHP5.zip
#https://github.com/Gerst20051/php_excel/archive/Excel-1.0.2.1-PHP5.zip #OLD_VERSION
PHP_EXCEL_ARCHIVE_DIR=php_excel-Excel-1.0.2.1-PHP5

set -e

install_libxl() {
    echo "Installing LIBXL v$LIBXL_VERSION"
    wget -O $TMP_DIR/$LIBXL_ARCHIVE $LIBXL_URL/$LIBXL_ARCHIVE
    tar zxvf $TMP_DIR/$LIBXL_ARCHIVE --directory $TMP_DIR
    sudo mkdir -p $LIBXL_INSTALL_PATH
    sudo cp -r $TMP_DIR/libxl-$LIBXL_ARCHIVE_VERSION/* $LIBXL_INSTALL_PATH
}

install_phpexcel_extension() {
    echo "Download and compling PHP_EXCEL extension for libxl"
    wget -O $TMP_DIR/php_excel.zip $PHP_EXCEL_URL
    if [ -d $TMP_DIR/$PHP_EXCEL_ARCHIVE_DIR ]; then
        # REMOVE eventual previous buils
        rm -r $TMP_DIR/$PHP_EXCEL_ARCHIVE_DIR/*
    fi
    unzip -o $TMP_DIR/php_excel.zip -d $TMP_DIR
    cd $TMP_DIR/$PHP_EXCEL_ARCHIVE_DIR/
    eval "$PHPIZE"
    ./configure --with-php-config=$PHP_CONFIG --with-libxl-incdir=$LIBXL_INSTALL_PATH/include_c/ --with-libxl-libdir=$LIBXL_INSTALL_PATH/lib64/ --with-excel=$LIBXL_INSTALL_PATH
    make
    #make test
    echo "Installing php extension (need sudo)"
    sudo make install
    echo "Install succeed, please add extension=excel.so in your php.ini"
}

register_php_extension() {
    echo "Registering available extension in $PHP_MODS_AVAILABLE_PATH/excel.ini" 
    echo "extension=excel.so" > $TMP_DIR/excel.ini
    sudo cp $TMP_DIR/excel.ini $PHP_MODS_AVAILABLE_PATH/excel.ini 
    cmd="sudo $PHPENMOD excel"
    echo "Activating: $cmd";
    eval $cmd;
}


install_libxl;
install_phpexcel_extension;
register_php_extension;

echo "Install successfull" 
echo "Optionally you can restart your fpm daemon"
echo "to reflect changes:"
echo "   sudo service php$PHP_VERSION-fpm restart";

Kedua, jika cara pertama sudah selesai di lakukan, selanjutnya tinggal jalankan file .sh tadi dengan cara mengetikan perintah berikut pada terminal. Disini saya meletakan file .sh nya di folder Download dengan nama install_libxl_php5.6.sh

Perintah untuk masuk ke folder Download

cd ~/Download

Perintah untuk mengeksekusi file install_libxl_php5.6.sh

sudo ./install_libxl_php5.6.sh

Ketiga, proses instalasi cukup memakan waktu dikarenakan ada proses download didalamnya, semua tergantung koneksi di tempat masing-masing. Tunggu sampai proses selesai, jika tidak terjadi masalah maka libxl sudah bisa langsung kamu pakai.

Mungkin cukup sekian dulu untuk pembahasan kali ini, semoga bermanfaat, tschuss...




Saya hanya seorang "newbie" yang baru bisa ngoding lohor kemarin.


EmoticonEmoticon