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