生成一段代码,pyqt 展示excel数据,并向excel中添加数据
时间: 2024-02-27 17:57:53 浏览: 89
用PyQt写的python程序,操作Excel,以及
3星 · 编辑精心推荐
好的,下面是一个简单的示例程序,展示如何使用PyQt显示Excel数据并向Excel中添加数据。在此示例中,我们使用了xlrd和xlwt这两个Python库。
```python
import xlrd
import xlwt
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QPushButton
from PyQt5.QtCore import Qt
class ExcelViewer(QMainWindow):
def __init__(self):
super().__init__()
# 打开Excel文件
workbook = xlrd.open_workbook('example.xls')
sheet = workbook.sheet_by_index(0)
# 创建表格控件
self.table = QTableWidget()
self.table.setRowCount(sheet.nrows)
self.table.setColumnCount(sheet.ncols)
self.setCentralWidget(self.table)
# 显示Excel数据
for i in range(sheet.nrows):
for j in range(sheet.ncols):
item = QTableWidgetItem(str(sheet.cell_value(i, j)))
self.table.setItem(i, j, item)
# 创建添加数据按钮
button = QPushButton('Add Data', self)
button.clicked.connect(self.add_data)
self.addToolBar(Qt.BottomToolBarArea, button)
def add_data(self):
# 打开Excel文件
workbook = xlrd.open_workbook('example.xls')
sheet = workbook.sheet_by_index(0)
# 创建Excel写入对象
new_workbook = xlwt.Workbook()
new_sheet = new_workbook.add_sheet('Sheet1')
# 复制Excel数据
for i in range(sheet.nrows):
for j in range(sheet.ncols):
new_sheet.write(i, j, sheet.cell_value(i, j))
# 添加新数据
new_sheet.write(sheet.nrows, 0, 'New Data 1')
new_sheet.write(sheet.nrows, 1, 'New Data 2')
# 保存Excel文件
new_workbook.save('example.xls')
# 刷新表格控件
self.table.setRowCount(sheet.nrows + 1)
for j in range(sheet.ncols):
item = QTableWidgetItem(str(''))
self.table.setItem(sheet.nrows, j, item)
if __name__ == '__main__':
app = QApplication([])
viewer = ExcelViewer()
viewer.show()
app.exec_()
```
在这个示例程序中,我们首先打开名为example.xls的Excel文件,并将其显示在PyQt应用程序中的表格控件中。然后,我们创建了一个按钮,用于添加新数据。当用户单击按钮时,我们将打开Excel文件,复制其中的数据,并向其中添加新数据。最后,我们保存Excel文件并刷新表格控件,以显示新数据。
阅读全文