【发布时间】:2010-10-06 10:36:15
【问题描述】:
我正在开发一种回归测试工具,该工具将验证大量 Excel 电子表格。目前,我使用最新版本的 pywin32 产品通过 Python 脚本通过 COM 控制它们。不幸的是,COM 似乎有许多恼人的缺点:
例如,最轻微的干扰似乎能够中断与 COM-Server 的连接,一旦断开,似乎没有安全的方法可以重新连接到 Excel 应用程序。 COM 应用程序对象中绝对没有内置安全性。
Excel COM 接口不允许我安全地远程控制在同一个工作簿文件上运行的 Excel 应用程序的两个单独实例,即使它们是只读的。
此外,当确实出现问题时,我很少收到任何有用的错误消息……最多只能是数字错误代码或几乎没有用的消息,例如“发生异常”。几乎不可能知道为什么会出错。
最后,COM 缺乏控制 Excel 一些最基本方面的能力?例如,没有办法保证只关闭 COM 客户端所连接的 Excel 进程。你甚至不能使用 COM 来查找 Excel 的 PID。
如果我完全放弃 COM 会怎样? 有没有其他方法可以控制 Excel?
我只想运行宏、打开和关闭工作簿以及读取和写入单元格范围?也许一些 .NET 专家知道一两个尚未进入 Python 社区的技巧?你们办公室黑客呢?有没有比 COM 更好的方法来了解 Excel 的内部结构?
【问题讨论】:
-
Excel 的真正金丝雀正在尝试跨安装了不同版本 Excel 的平台分发您的应用程序。真是个混蛋,真的,但我从来没有发现除了 COM 之外的任何其他方式,你可以走 PIA 路线,但它是一样的。
-
+1 - 这不是真的!