子飞鱼 发表于 2023-11-13 13:52:21

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

python如何通过windows文件对话框打开excel,并在指定单元格写入指定内容?
用pyside6做了一个界面程序,完成一些命令后,想要把其中一些指定内容写入到指定的excel文件,并且在excel文件中指定的多个单元格。请问如何做到?
还是通过QFileDialog这个类么?

isdkz 发表于 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文件。

Mike_python小 发表于 2023-11-13 13:53:50

使用QFileDialog打开Excel文件并写入指定内容

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

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


接下来,你可以使用以下代码片段来实现这个功能:


from PySide6.QtWidgets import QApplication, QFileDialog
import 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库打开并操作该文件,最后将更改保存并关闭文件。

你可以根据需要修改写入的内容和目标单元格,以及添加错误处理和其他必要的功能。
页: [1]
查看完整版本: python如何通过windows文件对话框打开excel,并在指定单元格写入指定内容?