You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何用Python打开Excel应用程序并实现后续交互操作?

问题概述

我已经尝试解决这个问题好几天了,但一直没成功。我的需求是:

  • 打开一个现有的Excel文件(注意是在Excel应用程序中打开工作簿,不是仅读取文件内容)
  • 在其他应用中完成特定的屏幕点击操作
  • 将捕获到的内容写回Excel文件

以下是我最近尝试的代码:

import pyautogui
import openpyxl
from openpyxl import load_workbook
import pathlib
from pathlib import Path

wb_folder = Path("C:/Users/reber/Gaming/Rise of Castles/Member_Details/")

#md_wb = openpyxl.load_workbook('C:\Users\reber\Gaming\Rise of Castles\Member_Details\Member_Details.xlsx')
#md_wb = openpyxl.load_workbook('C:\Users\reber\Gaming\Rise of Castles\Member_Details\Member_Details.xlsx')
#md_wb = openpyxl.load_workbook(r'C:\Users\reber\Gaming\Rise of Castles\Member_Details\Member_Details.xlsx')
#md_wb = openpyxl.load_workbook(r"C:\Users\reber\Gaming\Rise of Castles\Member_Details\Member_Details.xlsx")
md_wb = wb_folder / "Member_Details.xlsx"

f = open(md_wb)

p = pathlib.Path(__file__)
print (p)

但我始终无法成功打开Excel应用程序。

问题分析

你的代码存在几个核心问题:

  1. openpyxl仅操作文件内容,不启动Excel应用:这个库是用来读写xlsx文件数据的,和桌面端Excel应用程序没有关联,无法触发Excel启动。
  2. 用open()打开Excel文件完全错误:Excel是二进制格式文件,普通文件打开方式无法读取,且这也和启动Excel应用无关。
  3. 你混淆了「读取Excel文件内容」和「启动Excel应用打开工作簿」两个完全不同的操作。
解决方案

要启动Excel应用并打开指定工作簿,可采用以下几种方法:

方法1:使用os.startfile()(Windows专属)

这是Windows平台最简单的方式,直接调用系统关联程序打开文件:

import os
from pathlib import Path

wb_folder = Path("C:/Users/reber/Gaming/Rise of Castles/Member_Details/")
md_wb = wb_folder / "Member_Details.xlsx"

# 启动Excel应用并打开目标文件
os.startfile(md_wb)

方法2:使用subprocess(跨平台/更灵活)

如果需要更精准的控制,或者兼容其他系统,可以直接调用Excel的可执行文件路径:

import subprocess
from pathlib import Path

wb_path = Path("C:/Users/reber/Gaming/Rise of Castles/Member_Details/Member_Details.xlsx")

# Windows下Excel默认安装路径,可根据实际情况调整
excel_exe = r"C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"

# 调用Excel打开指定工作簿
subprocess.Popen([excel_exe, str(wb_path)])

后续操作提示

  1. 打开Excel后,可正常使用pyautogui执行屏幕点击等自动化操作。
  2. 若要将捕获内容写回Excel,需注意:
    • 若Excel应用处于打开状态,直接用openpyxl写入会报错(文件被Excel锁定)。
    • 可选方案:
      • 先关闭Excel,再用openpyxl写入数据。
      • 用pyautogui模拟键盘输入,直接在打开的Excel窗口中填写内容。
      • 使用win32com.client库直接控制已打开的Excel应用(专业桌面自动化方案)。

内容的提问来源于stack exchange,提问作者Rodger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 13:35:59