Tag Archives: Trik

Mengubah Tabel PDF ke Excel dengan Python

Mengubah Tabel PDF ke Excel dengan Python – Awalnya adalah keresahan pribadi ketika balik dari kuliah. Dulu itu, reviu RKA-K/L masih pakai aplikasi yang username dan password-nya DIPA. Saya bisa dengan mudah mengkonversi ADK ke format Excel dan dari situ saya bisa melalukan pekerjaan dengan mudah. Saya ada pengalaman cukup buruk soal itu, pernah dituding salah tapi tertolong oleh data bahwa pada proses reviu RKA-K/L saya diberikan data yang berbeda.

Blog secreet: Aplikasi RKAKL 2015
Aplikasi RKA-K/L zaman Pujangga Baru

Begitu balik dan aplikasinya jadi SAKTI, malah adanya cuma PDF. Saya lalu mengalami kesusahan karena note di PDF itu bagaimanapun sulit untuk direkap semudah pakai Excel dengan berbagai fiturnya.

Cukup Satu Aplikasi SAKTI (Sistem Aplikasi Keuangan Tingkat Instansi)

Saya kemudian mencari-cari berbagai kombinasi. Pada akhirnya saya mencampurkan converter free yang ada di internet dengan teknik yang akan saya kisahkan pada konten ini. Sekadar ingin memudahkan diri. Kebetulan, pas kuliah kemarin sempat mempaparkan diri pada Python walaupun kalau cari coding selalu dari internet. Heuheu.

Sesuai dengan sumbernya, kode-kode yang digunakan memanfaatkan Google Colab. Saya juga punya Jupyter Notebook tapi sudah dicoba ke situ, script ini gagal. Hehe.

Mari kita mulai…

Intinya, library yang digunakan adalah Tabula. Dengan Tabula, tabel di dalam file PDF akan dikonversi ke Pandas Dataframes. Nah, Tabula ini bukan bagian dari library Google Colab, jadi kita perlu masukkan dulu.

!pip install tabula-py

Ketika Tabula sudah ter-install, maka kita dapat meng-import 2 library yang juga kita butuhkan:

import tabula
import pandas as pd

Sebagai gambaran, saya gunakan hasil penerimaan CPNS dari Badan Informasi Geospasial (BIG). Kan lagi musim tuh tes CPNS dan sebenarnya data-datanya gurih untuk diolah bolak-balik. Karena pakai Google Colab, data yang sudah saya unduh tadi, kemudian saya unggah ke Google Colab tepatnya di logo folder sebelah kiri layar.

dfs = tabula.read_pdf("/content/BIG.pdf", multiple_tables=True, pages="all", encoding="utf-8")

Kalau diterjemahkan, bagian awal tentu saja nama file-nya. Untuk command selanjutnya adalah kita hanya memproses tabel yang dikenali di dalam PDF. True berarti kita mau semua tabel di dalam file akan diproses. Sedangkan untuk “UTF-8” digunakan karena dia adalah tipe encoding dari Pandas, library yang kita gunakan untuk memproses data.

Terakhir, kita menyimpan kode sebagai instance “dfs” sehingga kita dapat melakukan manipluasi lebih lanjut.

dfs[0]

Sesudah itu, kita perlu menambahkan library lain yakni Xlsxwriter.

!pip instanll Xlsxwriter
import xlsxwriter

Nah, dengan library tersebut, kita buat file Excel-nya:

writer = pd.ExcelWriter('BIG.xlsx',engine='xlsxwriter')

Writer sendiri memungkinkan kita untuk menyimpan setiap tabel atau dataframe sebagai tab sendiri dalam file Excel. Kadang jadi kosong ya namanya juga PDF, salah satu script yang bisa digunakan untuk mengantisipasinya adalah:

X = 0

for df in dfs:
if len (df) == 0
print("Empty Dataframe")

else:
df.to_excel(writer, sheet_name=f"sheet {X}")
print(f"Saved Sheet{X}")
X = X + 1

Script di atas kemudian dipungkasi dengan perintah menyimpan:

writer.save()

Kita bisa refresh file di sebelah kiri layar untuk mendapati file hasil export-nya muncul.

Sejujurnya masih agak berantakan karena 1 halaman jadi 1 sheet. Ini PR lagi dalam merapikannya, tapi hasil yang diperoleh lumayan untuk melengkapi hasil dari converter. Converter ini ada masalah lain karena biasanya kalau mau convert banyak halaman agak sulit dan harus berbayar, sementara saya kan miskin.

Kira-kira demikian, lebih lengkapnya bisa disimak di video YouTube berikut ya:

Ciao!

Sumber kode DISINI.