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

标签 python .net excel com

我正在开发一个回归测试工具,该工具将验证大量 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/

相关文章:

python - 关于这个 python 脚本的问题!

python - 在 Python 中将列表转换为集合!我究竟做错了什么?

c# - 在 PropertyGrid 中动态设置属性的只读属性

excel - 我的 VBA 代码可以逐行运行,但运行时不行

python - Django admin - 在单个管理界面中混合多个模型内联

python - 从 Django 中的模型搜索

c# - "Symbols for the module MyLibrary.dll were not loaded"?

c# - 为什么这行得通?在没有实例的情况下从 IL 执行方法

excel - 在 excel 中计算 c(1) + ... + c(i) 的总和

excel - 根据标题名称移动列