【发布时间】:2019-03-05 10:26:12
【问题描述】:
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
for wb in excel.Workbooks:
print(wb.Name)
当我使用 Sublime Text 运行这个脚本时: 打印打开的工作簿的名称列表。
当我使用 PyCharm 运行此脚本时: 我得到一个空白列表。
两者都在同一台 PC 上,并且使用相同版本的 Python(3.5 32 位)。
不确定这条信息是否有所作为,但我在第一次下载 PyCharm 时从未运行过 PyCharm 安装程序。我下载了 zip 文件,每次都从解压缩的文件夹中运行 PyCharm.exe。会不会是这个原因?
【问题讨论】:
-
您的两个 IDE 是否以同一用户身份运行且没有提升权限?
-
现在我想起来了,我正在以管理员身份运行 PyCharm。你认为这可以解释它吗?
-
是的,Excel COM 不会重用其他用户的主机进程(使用提升运行实际上与其他用户一样)。我将此添加到答案中。
-
确实,在禁用 PyCharm.exe 的“以管理员身份运行”选项后,脚本按预期工作,显示打开的工作簿列表。谢谢!
标签: python excel pywin32 win32com