Skip to main content
 首页 » 编程设计

python之有没有更好的方法(除了 COM)来远程控制 Excel

2025年05月04日10me-sa

我正在开发一个回归测试工具,该工具将验证大量 Excel 电子表格。目前,我使用最新版本的 pywin32 产品通过 Python 脚本通过 COM 控制它们。不幸的是,COM 似乎有一些恼人的缺点:

例如,最轻微的干扰似乎能够断开与 COM 服务器的连接,一旦断开,似乎没有安全的方法重新连接到 Excel 应用程序。 COM 应用程序对象中绝对没有内置安全性。

Excel COM 接口(interface)不允许我安全地远程控制在同一个工作簿文件上运行的 Excel 应用程序的两个单独实例,即使它们是只读的。

此外,当确实出现问题时,我很少收到任何有用的错误消息……充其量我只能收到数字错误代码或几乎没有用的消息,例如“发生异常”。几乎不可能知道为什么会出错。

最后,COM 缺乏控制 Excel 一些最基本方面的能力?例如,无法保证仅关闭 COM 客户端所连接的 Excel 进程。您甚至不能使用 COM 来查找 Excel 的 PID。

如果我完全放弃 COM 会怎么样? 有没有其他方法可以控制 Excel?

我只想运行宏、打开和关闭工作簿以及读取和写入单元格范围?也许一些 .NET 专家知道一两个尚未进入 Python 社区的技巧?你们办公室黑客呢?有没有比 COM 更好的方式来了解 Excel 的内部结构?

请您参考如下方法:

没有办法完全绕过COM。您可以使用 VSTO(Office 的 Visual Studio 工具),它在 COM 对象上有很好的 .NET 包装器,但它仍然是 COM 下面。