首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有更好的方法(除了COM)来远程控制Excel?

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

Stack Overflow用户
提问于 2009-02-09 16:21:49
回答 5查看 6.1K关注 0票数 1

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

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

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

而且当出了问题我很少收到有用的错误信息..。充其量,我可以除了一个数字错误代码或一个几乎没有用的消息,如“异常已经发生”。几乎不可能知道为什么出了什么问题。

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

,那么如果我完全放弃COM呢?有其他方法来控制Excel吗?

我想做的就是运行宏,打开和关闭工作簿,读和写单元格范围?也许一些.NET专家知道一两个尚未进入Python社区的窍门?你的办公室黑客呢?有什么方法能比COM更好地获取Excel的内部呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-02-09 16:25:35

不可能完全绕过COM。您可以使用VSTO (),它在COM对象上有很好的.NET包装器,但在下面仍然是COM。

票数 7
EN

Stack Overflow用户

发布于 2009-02-13 15:57:15

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

这不是COM的限制,这是一个Excel的局限性。如果两个文件位于不同的目录中,Excel甚至不会允许您同时打开同名的两个文件。这是Excel程序的一个基本限制。

回答你的其他问题

如果检查python文档,如果连接丢失,应该有一种连接到现有服务器的方法。

缺少有用的错误消息可能与Python有关。

您甚至无法使用COM找到Excel的PID。

COM是一个内部对象模型,它公开了它想要的东西。PID与内部进程一样适用于外部进程,因此没有真正的理由公开COM接口。

票数 2
EN

Stack Overflow用户

发布于 2009-02-09 16:54:49

还可以将Excel作为服务器应用程序运行,并将其用作计算引擎。这允许非IT用户在Excel中指定业务规则,并通过them服务调用他们。我自己也没有用过这个,但我知道我的一个同事曾经用过这个。演练:使用Excel服务开发自定义应用程序可能是一个很好的起点。乍一看,该页面似乎需要Sharepoint。这可能不适合每一个环境。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/528817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档