我正在开发一个回归测试工具,该工具将验证大量 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 下面。
关于python - 有没有更好的方法(除了 COM)来远程控制 Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/528817/