pyqt5打开并显示excel中想要的列并可以在指定行添加数据_python-3.x
时间: 2024-05-15 13:13:17 浏览: 16
可以使用Python中的openpyxl库来读取和修改Excel文件,并使用PyQt5来创建GUI界面。下面是一个简单的示例代码,可以打开Excel文件并显示指定列的数据,并允许在指定行添加新的数据。
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QPushButton, QLineEdit
from openpyxl import load_workbook
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建表格和按钮
self.table = QTableWidget(self)
self.btn_add = QPushButton('Add', self)
self.edit_row = QLineEdit(self)
# 设置表格的行数和列数
self.table.setRowCount(5)
self.table.setColumnCount(2)
# 设置表头
self.table.setHorizontalHeaderLabels(['Name', 'Age'])
# 加载Excel文件
self.workbook = load_workbook('data.xlsx')
self.sheet = self.workbook.active
# 显示Excel中指定列的数据
for i, row in enumerate(self.sheet.iter_rows(values_only=True)):
name = QTableWidgetItem(row[0])
age = QTableWidgetItem(str(row[1]))
self.table.setItem(i, 0, name)
self.table.setItem(i, 1, age)
# 添加按钮和编辑框,并设置布局
self.btn_add.move(50, 250)
self.edit_row.move(150, 250)
self.setCentralWidget(self.table)
self.setGeometry(100, 100, 300, 300)
self.setWindowTitle('Excel Viewer')
# 绑定按钮的点击事件
self.btn_add.clicked.connect(self.add_row)
def add_row(self):
# 获取编辑框中的文本和当前行数
row = int(self.edit_row.text())
name = QTableWidgetItem('New Person')
age = QTableWidgetItem('0')
# 在指定行添加新的数据
self.table.setItem(row, 0, name)
self.table.setItem(row, 1, age)
self.sheet.cell(row=row+1, column=1, value='New Person')
self.sheet.cell(row=row+1, column=2, value=0)
self.workbook.save('data.xlsx')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在这个例子中,我们首先创建一个`QTableWidget`对象来显示表格数据,并添加一个`QPushButton`和一个`QLineEdit`来添加新的数据。然后,我们使用`openpyxl`库来加载Excel文件并显示指定列的数据。最后,我们将按钮的点击事件绑定到`add_row`函数,该函数会在指定行添加新的数据。