Membuat File MS Office Secara Terprogram dengan Kotlin dan Apache POI

Avin Riyan
5 min readJan 2, 2019

--

Apache POI - the java API for Microsoft Document adalah library java yang digunakan untuk membuat, memodifikasi, dan membaca file Microsoft Office seperti Word (.docx), Excel, (.xlsx) dan PowerPoint (.pptx). Libary POI dikembangkan dan didistribusikan secara open source oleh Apache Software Foundation.

Di story ini kita akan membuat sebuah program sederhana berbasis teks/CLI yang keluarannya berupa file docx, xlsx, pptx dan didalamnya terdapat teks hello world jika dibuka dengan aplikasi Office. Program tersebut akan dibuat dengan menggunakan bahasa pemprograman Kotlin dan library POI.

Artikel Terkait: Membuat File docx, xlsx, pptx Secara Terprogram dengan CodeIgniter dan PHPOffice (berqas.com)

Untuk teman-teman yang mau mencoba membuat program serupa tapi berbasis Android, silakan buka story dibawah ini

Hal-hal yang perlu disiapkan:

  • Sebuah IDE atau teks editor favoritmu yang support Kotlin. di story ini saya menggunakan IntelliJ IDEA CE
  • Java JDK versi 1.5 ke atas

Langkah-langkah nya

1. Buka IDE, dan buat project baru, centang Kotlin/JVM

2. Tentukan nama project dan lokasi nya, saya beri nama KotlinPOI

3. lalu tekan finish, tunggu sampai project berhasil dibuat

4. Download library POI versi 4.0.1 (3 Desember 2018) https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-4.0.1-20181203.zip (36 MB)

36 MB

5. Ekstrak file .zip nya, didalamnya terdapat banyak sekali file .jar

123 MB

6. Kembali lagi ke IDE untuk menambahkan library secara manual, pilih menu File > Project Structure (ctrl+alt+shift+s)

7. Setelah jendela Project Structure muncul, pilih menu Libraries

8. klik tombol + lalu pilih Java

9. Pilih semua file jar yang ada di folder poi-4.0.1 yang telah di extract tadi. termasuk .jar di folder lib dan ooxml-lib.

Select modul KotlinPOI lalu oke

10. Setelah di OK, maka library poi-4.0.1 akan ada di External Libraries

Itulah konfigurasi awal menginstall library POI secara manual di IntelliJ.

Setelah itu kita coba membuat program hello world sederhana dulu, apakah ada masalah di project dengan library yang baru kita tambahkan

11. Buat file kelas kotlin baru di folder src, beri nama Main.kt

12. Buat fungsi main() di dalam Main.kt

fun main(args: Array<String>){
//write code here
println("Hello, world!")
}

13. klik tombol Add Configuration…

14. klik tombol +, lalu pilih Application

15. isi kolom name: dengan nama app

16. Isi kolom Main class: dengan cara klik tombol … , lalu pilih MainKt

lalu klik OK

17. Setelah itu kita coba run dengan menekan tombol Run atau shift+f10 untuk memeriksa apakah terjadi error atau tidak

Jika muncul seperti ini berarti tidak ada masalah

Langkah berikutnya kita akan membuat program untuk generate file docx, xlsx, pptx dengan class class dari POI

18. Kembali ke Main.kt

buat variabel string isinya “Hello, world!” di dalam method main()

val hello = "Hello, world!"

buat method baru createDocx(), createXlsx(), createPptx() dengan parameter hello: String, lalu panggil semua di method main()

fun main(args: Array<String>){
//write code here
val hello = "Hello, world!"
createDocx(hello)
createXlsx(hello)
createPptx(hello)
}

fun createDocx(hello: String) {}

fun createXlsx(hello: String) {}

fun createPptx(hello: String) {}

19. tulis isi createDocx()

fun createDocx(hello: String) {
val fileOutputStream = FileOutputStream("hello.docx")

val document = XWPFDocument()
val paragraph = document.createParagraph()
val run = paragraph.createRun()
run.setText(hello)

document.write(fileOutputStream)
fileOutputStream.close()
println("hello.docx was successfully created")
}

20. isi createXlsx()

fun createXlsx(hello: String) {
val fileOutputStream = FileOutputStream("hello.xlsx")

val workbook = XSSFWorkbook()
val sheet = workbook.createSheet("Sheet 1")
val row = sheet.createRow(2)
val cell = row.createCell(5)
cell.setCellValue(hello)

workbook.write(fileOutputStream)
fileOutputStream.close()
println("hello.xlsx was successfully created")
}

21. isi createPptx()

fun createPptx(hello: String) {
val fileOutputStream = FileOutputStream("hello.pptx")

val slideShow = XMLSlideShow()
val slideMaster = slideShow.slideMasters[0]
val slideLayout = slideMaster.getLayout(SlideLayout.TITLE_ONLY)
val slide = slideShow.createSlide(slideLayout)
val title = slide.getPlaceholder(0)
title.text = hello

slideShow.write(fileOutputStream)
fileOutputStream.close()
println("hello.pptx was successfully created")
}

kode lengkapnya Main.kt seperti ini

22. Setelah itu kita coba Run dan lihat hasilnya

console

Coba untuk membuka nya dengan aplikasi office yang terinstall di pc

Seperti itu program sederhana nya, kita berhasil generate file docx, xlsx, pptx dan menuliskan sebuah teks di dalamnya.

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

Terima kasih Apache untuk library POI nya yang sangat keren.

Sekian dulu tulisan saya, semoga bermanfaat.

refrensi:

Artikel Terkait lainnya:
- Cara Setup Apache POI di IntelliJ IDEA
- Membuat File docx, xlsx, pptx Secara Terprogram dengan CodeIgniter dan PHPOffice

--

--

Avin Riyan

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