鱼C论坛

 找回密码
 立即注册
查看: 1997|回复: 2

[已解决]python如何通过windows文件对话框打开excel,并在指定单元格写入指定内容?

[复制链接]
发表于 2023-11-13 13:52:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
python如何通过windows文件对话框打开excel,并在指定单元格写入指定内容?
用pyside6做了一个界面程序,完成一些命令后,想要把其中一些指定内容写入到指定的excel文件,并且在excel文件中指定的多个单元格。请问如何做到?
还是通过QFileDialog这个类么?
最佳答案
2023-11-13 13:52:31
是的,你可以使用 QFileDialog 类来打开Windows文件对话框以选择要写入内容的Excel文件。然后,你可以使用 openpyxl 库来打开选定的Excel文件,并在指定的单元格写入内容。

以下是一个简单的示例代码:
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QFileDialog
import openpyxl

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        button = QPushButton("选择Excel文件", self)
        button.clicked.connect(self.open_excel_file)

    def open_excel_file(self):
        options = QFileDialog.Options()
        file_name, _ = QFileDialog.getOpenFileName(self, "选择Excel文件", "", "Excel Files (*.xlsx)", options=options)

        if file_name:
            wb = openpyxl.load_workbook(file_name)
            sheet = wb.active
            sheet["A1"] = "你要写入的内容"
            wb.save(file_name)

if __name__ == "__main__":
    app = QApplication([])
    window = MyWindow()
    window.show()
    app.exec()

在这个示例中,当用户点击按钮时,会打开一个文件对话框以选择Excel文件。然后,程序会使用 openpyxl 库打开选定的Excel文件,并在A1单元格写入指定内容。最后,保存Excel文件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-13 13:52:31 | 显示全部楼层    本楼为最佳答案   
是的,你可以使用 QFileDialog 类来打开Windows文件对话框以选择要写入内容的Excel文件。然后,你可以使用 openpyxl 库来打开选定的Excel文件,并在指定的单元格写入内容。

以下是一个简单的示例代码:
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QFileDialog
import openpyxl

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        button = QPushButton("选择Excel文件", self)
        button.clicked.connect(self.open_excel_file)

    def open_excel_file(self):
        options = QFileDialog.Options()
        file_name, _ = QFileDialog.getOpenFileName(self, "选择Excel文件", "", "Excel Files (*.xlsx)", options=options)

        if file_name:
            wb = openpyxl.load_workbook(file_name)
            sheet = wb.active
            sheet["A1"] = "你要写入的内容"
            wb.save(file_name)

if __name__ == "__main__":
    app = QApplication([])
    window = MyWindow()
    window.show()
    app.exec()

在这个示例中,当用户点击按钮时,会打开一个文件对话框以选择Excel文件。然后,程序会使用 openpyxl 库打开选定的Excel文件,并在A1单元格写入指定内容。最后,保存Excel文件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-13 13:53:50 | 显示全部楼层
使用QFileDialog打开Excel文件并写入指定内容

在Pyside6中,你可以使用QFileDialog来打开文件对话框选择Excel文件,然后使用openpyxl库来操作Excel文件并将指定内容写入指定的单元格。

首先,你需要安装openpyxl库(如果未安装的话):
[/code]bash
pip install openpyxl
[/code]

接下来,你可以使用以下代码片段来实现这个功能:
from PySide6.QtWidgets import QApplication, QFileDialogimport openpyxl# 创建应用程序app = QApplication([])# 打开文件对话框选择Excel文件file_dialog = QFileDialog()file_dialog.setNameFilter("Excel Files (*.xlsx)")file_dialog.setDefaultSuffix("xlsx")file_path, _ = file_dialog.getOpenFileName()# 如果用户取消选择文件,file_path将为空if file_path:    # 打开Excel文件    workbook = openpyxl.load_workbook(file_path)    # 获取要操作的工作表    sheet = workbook.active    # 将指定内容写入指定的单元格    content = "Hello, World!"    cell_row = 1    cell_column = 1    sheet.cell(row=cell_row, column=cell_column).value = content    # 在excel文件中指定的多个单元格写入指定内容    contents = ["Content 1", "Content 2", "Content 3"]    cells = [(2, 1), (2, 2), (2, 3)]  # (row, column) 格式    for content, (row, column) in zip(contents, cells):        sheet.cell(row=row, column=column).value = content    # 保存对Excel文件的更改    workbook.save(file_path)    # 关闭文件    workbook.close()# 结束应用程序app.exit()
上述代码中,首先通过QFileDialog选择Excel文件,然后使用openpyxl库打开并操作该文件,最后将更改保存并关闭文件。

你可以根据需要修改写入的内容和目标单元格,以及添加错误处理和其他必要的功能。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 07:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表