请为写一段pyqt5代码,大小为(800,500)可以打开excle,并且显示出其中的数据,在QtCore.QRect(20, 450, 150, 30),QtCore.QRect(320, 450, 150, 30)完成两个文本框,最后将表格中的数据和文本框中的数据一起发送出去
时间: 2024-05-08 21:16:06 浏览: 93
基于PyQt5实现导出Excle表示例
5星 · 资源好评率100%
以下是一段实现上述功能的pyqt5代码:
```python
import sys
import pandas as pd
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QFileDialog, QTableWidget, QTableWidgetItem, QLineEdit, QLabel, QHBoxLayout, QVBoxLayout
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 800, 500)
self.setWindowTitle('Excel Viewer')
self.table = QTableWidget(self)
self.table.setGeometry(20, 20, 760, 400)
self.open_btn = QPushButton('Open', self)
self.open_btn.setGeometry(20, 440, 150, 30)
self.open_btn.clicked.connect(self.open_file)
self.send_btn = QPushButton('Send', self)
self.send_btn.setGeometry(320, 440, 150, 30)
self.send_btn.clicked.connect(self.send_data)
self.label1 = QLabel('Data 1:', self)
self.label1.setGeometry(20, 460, 50, 20)
self.textbox1 = QLineEdit(self)
self.textbox1.setGeometry(70, 460, 200, 20)
self.label2 = QLabel('Data 2:', self)
self.label2.setGeometry(320, 460, 50, 20)
self.textbox2 = QLineEdit(self)
self.textbox2.setGeometry(370, 460, 200, 20)
def open_file(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
file_name, _ = QFileDialog.getOpenFileName(self, 'Open Excel', '', 'Excel Files (*.xlsx *.xls)', options=options)
if file_name:
self.table.clear()
df = pd.read_excel(file_name)
self.table.setRowCount(len(df.index))
self.table.setColumnCount(len(df.columns))
self.table.setHorizontalHeaderLabels(df.columns)
for i in range(len(df.index)):
for j in range(len(df.columns)):
self.table.setItem(i, j, QTableWidgetItem(str(df.iloc[i, j])))
def send_data(self):
data1 = self.textbox1.text()
data2 = self.textbox2.text()
table_data = []
for i in range(self.table.rowCount()):
row_data = []
for j in range(self.table.columnCount()):
row_data.append(self.table.item(i, j).text())
table_data.append(row_data)
# Do something with the data
print('Data 1:', data1)
print('Data 2:', data2)
print('Table Data:', table_data)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在这个窗口中,我们创建了一个表格控件,两个文本框和两个按钮。单击“Open”按钮将打开文件对话框,以便用户可以选择要打开的Excel文件。一旦用户选择了文件,我们使用pandas库读取Excel文件中的数据,并将其显示在表格控件中。
在“Send”按钮上单击时,我们获取文本框中的数据以及表格中的数据,并将它们打印出来。在实际应用中,您可以使用这些数据进行任何您需要的操作。
阅读全文