Skip to content

Commit d1c8218

Browse files
authored
Add files via upload
0 parents  commit d1c8218

File tree

2 files changed

+222
-0
lines changed

2 files changed

+222
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Leer archivos excel desde una GUI en PyQt5
2+
# @autor: Magno Efren
3+
# Youtube: https://www.youtube.com/c/MagnoEfren
4+
5+
import sys
6+
from tabla import*
7+
from PyQt5.QtWidgets import QTableWidgetItem, QFileDialog, QMessageBox
8+
import pandas as pd
9+
10+
class MiApp(QtWidgets.QMainWindow):
11+
def __init__(self):
12+
super().__init__()
13+
self.ui = Ui_MainWindow()
14+
self.ui.setupUi(self)
15+
16+
self.ui.bt_abrir.clicked.connect(self.abrir_archivo)
17+
self.ui.pushButton.clicked.connect(self.crear_tabla)
18+
19+
20+
def abrir_archivo(self):
21+
file = QFileDialog.getOpenFileName(self,"Abrir Archivo Excel", "","Excel Files (*.xlsx) ;; All Files (*)")
22+
self.direccion = file[0]
23+
24+
25+
def crear_tabla(self):
26+
try:
27+
df = pd.read_excel(self.direccion)
28+
29+
columnas = list(df.columns)
30+
df_fila = df.to_numpy().tolist()
31+
x = len(columnas)
32+
y = len(df_fila)
33+
34+
except ValueError:
35+
QMessageBox.about (self,'Informacion', 'Formato incorrecto')
36+
return None
37+
38+
except FileNotFoundError:
39+
QMessageBox.about (self,'Informacion', 'El archivo esta \n malogrado')
40+
return None
41+
42+
#print(x, y)
43+
44+
self.ui.tableWidget.setRowCount(y)
45+
self.ui.tableWidget.setColumnCount(x)
46+
47+
for j in range(x):
48+
#print(columnas[j])
49+
encabezado = QtWidgets.QTableWidgetItem(columnas[j])
50+
self.ui.tableWidget.setHorizontalHeaderItem(j,encabezado )
51+
for i in range(y):
52+
dato = str(df_fila[i][j])
53+
if dato == 'nan':
54+
dato =''
55+
self.ui.tableWidget.setItem(i,j, QTableWidgetItem(dato))
56+
#print(df_fila)
57+
58+
59+
60+
if __name__ == "__main__":
61+
app = QtWidgets.QApplication(sys.argv)
62+
mi_app = MiApp()
63+
mi_app.show()
64+
sys.exit(app.exec_())
65+
66+
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
# -*- coding: utf-8 -*-
2+
3+
# Form implementation generated from reading ui file 'tabla.ui'
4+
#
5+
# Created by: PyQt5 UI code generator 5.12.3
6+
#
7+
# WARNING! All changes made in this file will be lost!
8+
9+
10+
from PyQt5 import QtCore, QtGui, QtWidgets
11+
12+
13+
class Ui_MainWindow(object):
14+
def setupUi(self, MainWindow):
15+
MainWindow.setObjectName("MainWindow")
16+
MainWindow.resize(676, 441)
17+
self.centralwidget = QtWidgets.QWidget(MainWindow)
18+
self.centralwidget.setObjectName("centralwidget")
19+
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
20+
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
21+
self.verticalLayout.setSpacing(0)
22+
self.verticalLayout.setObjectName("verticalLayout")
23+
self.frame = QtWidgets.QFrame(self.centralwidget)
24+
self.frame.setStyleSheet("background-color: rgb(255, 255, 255);")
25+
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
26+
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
27+
self.frame.setObjectName("frame")
28+
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.frame)
29+
self.verticalLayout_2.setObjectName("verticalLayout_2")
30+
self.frame_2 = QtWidgets.QFrame(self.frame)
31+
self.frame_2.setStyleSheet("background-color: rgb(128, 111, 255);")
32+
self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
33+
self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
34+
self.frame_2.setObjectName("frame_2")
35+
self.horizontalLayout = QtWidgets.QHBoxLayout(self.frame_2)
36+
self.horizontalLayout.setObjectName("horizontalLayout")
37+
self.bt_abrir = QtWidgets.QPushButton(self.frame_2)
38+
self.bt_abrir.setStyleSheet("QPushButton{\n"
39+
" \n"
40+
" background-color: rgb(0, 255, 127);\n"
41+
" font: 87 10pt \"Arial\";\n"
42+
"border:1px solid #000000;\n"
43+
" border-radius:5px;\n"
44+
"}\n"
45+
"\n"
46+
"QPushButton:hover {\n"
47+
" \n"
48+
" background-color: rgb(0, 0, 255);\n"
49+
" font: 87 10pt \"Arial\";\n"
50+
"border:1px solid #000000;\n"
51+
" border-radius:5px;\n"
52+
"}")
53+
self.bt_abrir.setObjectName("bt_abrir")
54+
self.horizontalLayout.addWidget(self.bt_abrir)
55+
self.pushButton = QtWidgets.QPushButton(self.frame_2)
56+
self.pushButton.setStyleSheet("QPushButton{\n"
57+
" \n"
58+
" background-color: rgb(0, 170, 0);\n"
59+
" font: 87 10pt \"Arial \";\n"
60+
"border:1px solid #000000;\n"
61+
" border-radius:5px;\n"
62+
"\n"
63+
"}\n"
64+
"\n"
65+
"QPushButton:hover{\n"
66+
" \n"
67+
" background-color: rgb(85, 255, 0);\n"
68+
" font: 87 10pt \"Arial \";\n"
69+
"border:1px solid #000000;\n"
70+
" border-radius:5px;\n"
71+
"\n"
72+
"}")
73+
self.pushButton.setObjectName("pushButton")
74+
self.horizontalLayout.addWidget(self.pushButton)
75+
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
76+
self.horizontalLayout.addItem(spacerItem)
77+
self.label = QtWidgets.QLabel(self.frame_2)
78+
self.label.setStyleSheet("font: 75 20pt \"Rockwell Condensed\";")
79+
self.label.setObjectName("label")
80+
self.horizontalLayout.addWidget(self.label)
81+
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
82+
self.horizontalLayout.addItem(spacerItem1)
83+
self.bt_salir = QtWidgets.QPushButton(self.frame_2)
84+
self.bt_salir.setStyleSheet("\n"
85+
"QPushButton{\n"
86+
" background-color: rgb(255, 0, 0);\n"
87+
" font: 87 10pt \"Arial\";\n"
88+
"border:1px solid #000000;\n"
89+
" border-radius:5px;\n"
90+
"\n"
91+
"}\n"
92+
"\n"
93+
"\n"
94+
"QPushButton:hover{\n"
95+
" \n"
96+
" background-color: rgb(255, 255, 255);\n"
97+
" font: 87 10pt \"Arial\";\n"
98+
"border:1px solid #000000;\n"
99+
" border-radius:5px;\n"
100+
"\n"
101+
"}")
102+
self.bt_salir.setObjectName("bt_salir")
103+
self.horizontalLayout.addWidget(self.bt_salir)
104+
self.verticalLayout_2.addWidget(self.frame_2)
105+
self.tableWidget = QtWidgets.QTableWidget(self.frame)
106+
self.tableWidget.setStyleSheet("QWidget {\n"
107+
" background-color: #ffffff;\n"
108+
" color: #000000;\n"
109+
"}\n"
110+
"\n"
111+
"QHeaderView::section {\n"
112+
" background-color: #aa00ff;\n"
113+
" padding: 2px;\n"
114+
"\n"
115+
" border: 1px solid #fffff8;\n"
116+
" font-size: 14pt;\n"
117+
"}\n"
118+
"\n"
119+
"QTableWidget {\n"
120+
" gridline-color: #aa00ff;\n"
121+
" font-size: 12pt;\n"
122+
"}\n"
123+
"\n"
124+
"QTableWidget QTableCornerButton::section {\n"
125+
" background-color: #646464;\n"
126+
" border: 1px solid #ff0000;\n"
127+
"}")
128+
self.tableWidget.setObjectName("tableWidget")
129+
self.tableWidget.setColumnCount(0)
130+
self.tableWidget.setRowCount(0)
131+
self.verticalLayout_2.addWidget(self.tableWidget)
132+
self.verticalLayout.addWidget(self.frame)
133+
self.verticalLayout.setStretch(0, 10)
134+
MainWindow.setCentralWidget(self.centralwidget)
135+
136+
self.retranslateUi(MainWindow)
137+
self.bt_salir.clicked.connect(MainWindow.close)
138+
QtCore.QMetaObject.connectSlotsByName(MainWindow)
139+
140+
def retranslateUi(self, MainWindow):
141+
_translate = QtCore.QCoreApplication.translate
142+
MainWindow.setWindowTitle(_translate("MainWindow", "Leer archivos Excel"))
143+
self.bt_abrir.setText(_translate("MainWindow", "ABRIR ARCHIVO"))
144+
self.pushButton.setText(_translate("MainWindow", "MOSTRAR DATOS"))
145+
self.label.setText(_translate("MainWindow", "LEER ARCHIVOS EXCEL"))
146+
self.bt_salir.setText(_translate("MainWindow", "SALIR"))
147+
148+
149+
if __name__ == "__main__":
150+
import sys
151+
app = QtWidgets.QApplication(sys.argv)
152+
MainWindow = QtWidgets.QMainWindow()
153+
ui = Ui_MainWindow()
154+
ui.setupUi(MainWindow)
155+
MainWindow.show()
156+
sys.exit(app.exec_())

0 commit comments

Comments
 (0)