Membuat File MS Office Secara Terprogram dengan Apache POI Berbasis Android

Avin Riyan
5 min readDec 28, 2018

--

Membuat file MS Office (docx/xlsx/pptx) secara terprogram? Bagaimana bisa?

Pada dasarnya file docx, xlsx, pptx atau biasa disebut Office Open XML (OOXML) adalah format file zip berbasis XML yang dikembangkan oleh Microsoft untuk mewakili berkas-berkas dokumen, spreadsheet, atau presentasi.

Karena itu file tersebut dapat di ekstrak dan didalamnya terdapat kumpulan file-file XML yang tersusun dan berisi informasi apabila anda membuka nya dengan text editor.

Kita dapat melakukan generate file OOXML(docx,xlsx,pptx) pada program yang kita buat tanpa harus menginstall Microsoft Office atau aplikasi sejenis lainnya seperti LibreOffice, Open Office, WPS Office, dsb. pada mesin kita.

Lalu dengan apa dong? Cukup dengan bahasa pemprograman yang kita kuasai dan library khusus yang menangani penulisan dan pembacaan file berformat OOXML. Contohnya yang saya ketahui:

Berhubung mau dicoba di aplikasi android, jadi saya pengen berkenalan dengan Apache POI.

Apache POI

Apache POI adalah library java yang digunakan untuk membuat, memodifikasi, dan membaca file Microsoft Office seperti Word, Excel, dan PowerPoint. Library ini dikembangkan dan didistribusikan secara open source oleh Apache Software Foundation, info lengkapnya ada di website, github dan wikipedia.

Pertanyaannya, apakah POI bisa berjalan di aplikasi android? jawaban nya adalah bisa. Walaupun ukuran POI terlalu besar untuk aplikasi android, terdapat sebuah sample proyek yang menunjukan bagaimana POI bisa digunakan di aplikasi android, nanti kita coba dan buktikan. https://github.com/centic9/poi-on-android

Sekarang kita coba praktikkan, silakan teman-teman bisa mengikuti

Langkah-langkah nya:

  1. Buat project android baru, saya akan pakai Kotlin karena poi support untuk semua bahasa pemprograman berbasis JVM

2. Atur minimum SDK nya menjadi API 21: Android 5.0 (Lollipop)

3. Settingan selanjutnya biarkan default, Next sampai project berhasil dibuat

4. Download library .jar nya (13,5 MB) https://github.com/centic9/poi-on-android/releases/download/0.5/poishadow-all.jar

13,5 MB

5. Pindahkan atau copy file .jar nya ke dalam folder libs di project android

PoiAndroid/app/libs/poishadow-all.jar

6. Klik kanan poishadow-all.jar lalu pilih Add As Library

Add As Libary…
Add to module: app

Setelah OK maka hasilnya adalah pada file build.gradle level app ketambahan satu baris di dependencies, tunggu sampai project berhasil di sync

implementation files('libs/poishadow-all.jar')

7. Selanjutnya adalah mengkonfigurasi aplikasi untuk multidex, alasannya library yang kita gunakan terlalu besar dan mencapai batas arsitektur pembangunan aplikasi android. Baca lebih lanjut tentang Multidex https://developer.android.com/studio/build/multidex

Karena kita sudah atur minimum SDK level 21, cukup menambahkan multiDexEnabled menjadi true di file build.gradle level app

android {
defaultConfig {
...
minSdkVersion 21
targetSdkVersion 28
multiDexEnabled true
}
...
}

untuk yang minSdkVersion 20 atau lebih rendah, silakan buka halaman Multidex untuk melihat cara konfigurasi.

8. Langkah berikutnya, mengatur secara manual system property untuk XML Parser dengan cara menambahkan 3 baris ini ke MainActivity.kt di dalam method onCreate()

9. Tambahkan uses permission Write External Storage pada manifest karena nanti kita akan membuat file baru di extrnal storage pada hp android

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

itulah langkah-langkah konfigurasi awal poi di android, pastikan tidak ada langkah yang terlewat.

Selanjutnya adalah kita mendesain aplikasi yang simple untuk membuktikan bahwa poi bisa berjalan di app android, skenario nya seperti ini:

  • Ada sebuah kotak input teks, user bisa menulis apapun di situ
  • Ada 3 tombol: create docx, create xlsx, create pptx
  • Jika user melakukan klik pada tombol create docx, maka file docx baru akan muncul pada folder documents
  • file docx tersebut bisa di buka dengan aplikasi office yang terinstall di hp
  • di dalam dokumen terdapat teks yang sama dengan teks yang ditulis user di kotak input teks pada aplikasi.
  • Berlaku juga untuk tombol yang lain (create xlsx dan create pptx)
  1. Menuju activity_main.xml
tampilan simple seperti ini

2. Menuju MainActivity.kt, kita tulis semua fungsi untuk membuat file docx, xlsx, pptx di sini

3. setelah itu kita Run dan coba aplikasi nya, kurang lebih seperti pada video

4. File yang terbuat berada di folder document, dan ketika kita buka dengan office, terdapat pesan yang kita tulis seperti pada aplikasi.

Simple sekali kan? kita telah membuktikan kalau POI bisa berjalan di android. Kode lengkap ada di github saya.

Teruntuk teman-teman yang ingin membuat dengan format yang lebih kompleks atau mengenal Apache POI lebih jauh, silakan kunjungi tutorialnya di:

Catatan Penting

Karena library POI ukurannya terlalu besar, ukuran versi komplitnya kurang lebih 123 MB, maka tidak disarankan untuk mengimplementasikan di aplikasi mobile seperti android. Aplikasi simple yang kita buat saja memiliki ukuran 68,75 MB. Ya tidak apa-apa mencoba eksperimen ini.

Cara terbaik ialah mengimplementasikan POI pada aplikasi server side, lalu di android nya cukup mengirim request dan menerima respon bisa berupa file terdownload atau apalah, di kesempatan lain saya akan coba skenario ini.

Terima kasih Apache untuk library POI nya yang sangat keren.

Sekian dulu tulisan saya, semoga bermanfaat.

--

--

Avin Riyan

Penulis di berqas.com dan pengelola kanal berqas 🧪🐟⚙️🐄🌳🪨🍞✈️