Membuat Excel Reader Menggunakan Python – pesonainformatika.com studi kasus kali ini kita akan membuat program untuk membaca file excel menggunakan python, nah kali ini kita membuat aplikasi berbasis desktop, kita akan menggunakan framework pyqt5, bagaimana caranya? yuk simak caranya
Rancangan Program
kali ini kita akan membuat program berbasis desktop dimana program kita ananti akan membaca file .xlsx lalu akan di load datanya kemudian ditampilkan dalam aplikasi kita, jika sudah paham langsung saja ke persiapan program.
Persiapan Projects
untuk mulai membuat project, pastikan sudah menginstal python di sistem operasi lalu kita perlu menginstall library yang dibutuhkan untuk membuat project ini, berikut library-nya
cara installnya cukup mudah bisa menggunakan pip seperti ini
pip install pyqt5
kemudian install pandas dengan perintah
pip install pandas
setelah semua terinstall, kita masuk ke langkah selanjutnya yaitu membuat projects
Membuat Projects
pertama kita perlu import modul yang dibutuhkan
import sys import pandas as pd from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem, QPushButton, QHeaderView, QHBoxLayout, QVBoxLayout from PyQt5.QtCore import Qt
kemudian kita buat class MainWindow buat konfigurasi Aplikasi Kita
class MainWindow(QWidget): def __init__(self): super(MainWindow, self).__init__()
selanjutnya kita konfigurasi ManiWindow aplikasi
# set window width self.window_width = 700 self.window_height = 500 # resize window self.resize(self.window_width, self.window_height) self.setWindowTitle("Excel Readers")
nah sekaang kita akan coba buat layoutnya supaya kita dapat menambahkan widget untuk aplikasi yang tadi dibuat
# layout settings layout = QVBoxLayout() self.setLayout(layout)
selanjutnya supaya kita dapat menampilkan table kita perlu menambahkan QTableWidget() agar table yang kita load itu rapi seperti ini
# Table Settings self.table = QTableWidget() layout.addWidget(self.table)
baru setelah ini kita menambahkan tombol untuk bisa menambahkan file excel
# Button Config self.button = QPushButton("Load .xlsx or csv File") self.button.clicked.connect(self.load_excel_data) layout.addWidget(self.button)
dalam kasus ini kita belum mempunyai method load_excel_data() maka kita buat method nya agar ketika kita klik tombil tersebut kita bisa load file .xlsx pada aplikasi kita seperti ini
# create method to load excel file def load_excel_data(self): dialog = QFileDialog() dialog.setFileMode(QFileDialog.AnyFile) dialog.setFilter(QDir.Files) if dialog.exec_(): filename = dialog.selectedFiles() if filename[0].endswith('.xlsx'): df = pd.read_excel(filename[0]) if df.size == 0: return else: df.fillna('', inplace=True) self.table.setRowCount(df.shape[0]) self.table.setColumnCount(df.shape[1]) # returns pandas array object for row in df.iterrows(): values = row[1] for col_index, value in enumerate(values): if isinstance(value, (float, int)): value = '{0:0,.0f}'.format(value) tableitem = QTableWidgetItem(str(value)) self.table.setItem(row[0], col_index, tableitem) self.table.setColumnWidth(2, 300) else: pass
nah sekarang langkah terakhir buat kita konfigurasi agar aplikasi kita bisa dijalankan dengan baik
if __name__ == '__main__': app = QApplication(sys.argv) app.setStyleSheet(''' QWidget { font-size: 17px; } ''') main_window = MainWindow() main_window.show() try: sys.exit(app.exec_()) except SystemExit: print('Closing Window')
jika aplikasi kita jalankan hasilnya akan seperti ini


Final Code
berikut adalah final code pada materi kali ini
import sys import pandas as pd from PyQt5.QtCore import QDir from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem, QPushButton, QVBoxLayout, QFileDialog class MainWindow(QWidget): def __init__(self): super(MainWindow, self).__init__() # set window width self.window_width = 700 self.window_height = 500 # resize window self.resize(self.window_width, self.window_height) self.setWindowTitle("Excel Readers") # layout settings layout = QVBoxLayout() self.setLayout(layout) # Table Settings self.table = QTableWidget() layout.addWidget(self.table) # Button Config self.button = QPushButton("Load .xlsx or csv File") self.button.clicked.connect(self.load_excel_data) layout.addWidget(self.button) # create method to load excel file def load_excel_data(self): dialog = QFileDialog() dialog.setFileMode(QFileDialog.AnyFile) dialog.setFilter(QDir.Files) if dialog.exec_(): filename = dialog.selectedFiles() if filename[0].endswith('.xlsx'): df = pd.read_excel(filename[0]) if df.size == 0: return else: df.fillna('', inplace=True) self.table.setRowCount(df.shape[0]) self.table.setColumnCount(df.shape[1]) # returns pandas array object for row in df.iterrows(): values = row[1] for col_index, value in enumerate(values): if isinstance(value, (float, int)): value = '{0:0,.0f}'.format(value) tableitem = QTableWidgetItem(str(value)) self.table.setItem(row[0], col_index, tableitem) self.table.setColumnWidth(2, 300) else: pass if __name__ == '__main__': app = QApplication(sys.argv) app.setStyleSheet(''' QWidget { font-size: 17px; } ''') main_window = MainWindow() main_window.show() try: sys.exit(app.exec_()) except SystemExit: print('Closing Window')
atau bisa melakukan clone melalui github di https://github.com/pesonainformatika/excel-reader
sekian studi kasus membuat excel reader Menggunakan Python kali ini, semoga bermanfaat dan mencoba, ikuti studi kasus lainya di pesonainformatika ada beberapa bahasa pemrograman lainya seperti Java, Python C++
people who use linux and people who are friendly