pyqt5打开并显示excel中想要的列并可以在指定列添加数据_python-3.x
时间: 2024-05-16 12:16:55 浏览: 107
python编写excel表指定列
首先,你需要安装 `openpyxl` 库来处理 Excel 文件。你可以使用以下命令进行安装:
```
pip install openpyxl
```
接下来,你可以使用 `QFileDialog` 对话框来选择 Excel 文件。然后,使用 `openpyxl` 库来打开并读取 Excel 文件中的数据。
以下是一个简单的示例代码,它可以打开一个 Excel 文件并显示其中的指定列。你可以在指定列中添加数据并保存文件。
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QTableWidget, QTableWidgetItem
from openpyxl import load_workbook
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个表格控件
self.table = QTableWidget()
self.setCentralWidget(self.table)
# 添加“打开”菜单项
open_action = self.menuBar().addAction('打开')
open_action.triggered.connect(self.open_file)
def open_file(self):
# 弹出“打开”对话框并返回所选文件的路径
path, _ = QFileDialog.getOpenFileName(self, '打开', '', 'Excel 文件 (*.xlsx)')
if path:
# 打开 Excel 文件并获取指定的工作表
workbook = load_workbook(path)
worksheet = workbook.active
# 获取指定列的数据并显示在表格中
column = 1 # 指定要显示的列索引
data = []
for row in worksheet.iter_rows(min_row=2, values_only=True):
data.append(row[column])
self.table.setRowCount(len(data))
self.table.setColumnCount(1)
for i, item in enumerate(data):
self.table.setItem(i, 0, QTableWidgetItem(str(item)))
# 在指定列中添加数据并保存 Excel 文件
new_data = ['new data 1', 'new data 2', 'new data 3']
for i, item in enumerate(new_data):
worksheet.cell(row=i+2, column=column+1, value=item)
workbook.save(path)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在上面的示例代码中,我们使用 `QTableWidget` 控件来显示 Excel 文件中的数据。用户可以通过菜单选择要打开的 Excel 文件。然后,我们使用 `openpyxl` 库来打开 Excel 文件并获取指定列的数据。我们将数据添加到 `QTableWidget` 控件中,并在指定列中添加新数据。最后,我们保存 Excel 文件并退出应用程序。
阅读全文