我所在的团队目前专门使用 C#/.NET 创建 Windows 桌面应用程序,这些应用程序通过 Office COM Interop 与 Microsoft Excel 的本地用户实例进行交互。我目前负责指定一个新产品,但我被告知,除非该应用程序可以在 Mac 和 Windows 上运行,否则该项目不会继续进行——也就是说,我们必须能够生成该应用程序的 Mac 版本它可以本地安装在 OSX 上并与用户的 Microsoft Excel for Mac 实例的对象模型进行交互。
使用 Parallels、Mono 或 Wine 运行应用程序(请参阅OSX 中通过 Wine 进行 COM 互操作 https://stackoverflow.com/questions/23532327/com-interop-through-wine-in-osx,从未得到答复)不是解决方案,因为应用程序的规范要求用户计算机不得以任何方式修改。我们只需假设用户正在运行 Excel 的许可本地副本,然后使用它......这就是我们一直在 Windows 上所做的,在 Windows 上效果很好。
我认为 .NET Core 是答案,但我找不到任何地方明确表明,当使用 Excel 的本地副本在 Mac OSX 上运行 .NET Core 时,我们可以(或将能够)从 C# 访问 Excel 对象库对于Mac安装的。有人可以指出我已经讨论过这个问题吗?但如果没有,那么请告诉我如何从 Microsoft 那里了解这是否在他们的 .NET Core 路线图中?
我从 MSDN 上类似措辞的问题中收到了一些有用的反馈。我也在 .NET Core Github 上发布了一个问题,但我想答案已经很清楚了,如下:
- .NET Core 团队也许可以说服在 .NET Core 类库中添加对 Office.Interop.Excel 命名空间的访问权限,但仅限于 Windows
- 对于 OSX 上的 .NET Core 无法完成此操作,因为环境是
不适合交换 COM 对象。
- 这使得在 Excel 中操作对象只剩下两个选项:
Mac,两者均已存在:嵌入式 VBA 或 Javascript (Office
插件)。
- Office Addins 是面向 Web 驱动的面向数据的出色的新解决方案
Excel 中的对象 - 其多平台特性非常棒 - 因此享受主要焦点
来自微软的开发。然而,它并不旨在成为任何
与 COM 管理复杂电子表格的性能相匹配,
因为那不是它的重点。
- 这意味着没有在 Excel 中管理对象的解决方案
对于 Mac,使用 C#,就像在 Windows 上一样,并且有
似乎没有任何前景。
底线:非常受欢迎的 .NET Core 计划看起来像是一个修复程序,但遗憾的是并非如此,因为 OSX 上的架构限制。
我提交这个作为答案是因为我想我已经结束了对它的询问,但如果有人认为以上任何内容不正确,请大声喊叫!
Thanks.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)