小编典典

是否有更好的方式(除了COM)来远程控制Excel?

python

我正在开发一种回归测试工具,该工具将验证大量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的内幕?


阅读 251

收藏
2020-12-20

共1个答案

小编典典

没有办法完全绕过COM。您可以使用VSTO(用于Office的Visual Studio工具),该VSTO在COM对象上具有漂亮的.NET包装器,但它仍位于COM之下。

2020-12-20