Office (Excel) Mac OSX 上的 COM 互操作使用 .NET Core?
Office (Excel) COM interop on Mac OSX using .NET Core?
我所在的团队目前专门致力于在 C#/.NET 中创建 windows 桌面应用程序,这些应用程序通过 Office COM Interop 与 Microsoft Excel 的本地用户实例交互。我目前负责指定一个新产品,但我被告知该项目不会继续,除非该应用程序可以 运行 on Mac 以及 Windows – 也就是说,我们必须能够生成 Mac 版本的应用程序,该版本可以在 OSX 上本地安装并与 Mac 的 Microsoft Excel 用户实例的对象模型交互。
运行 带有 Parallels、Mono 或 Wine 的应用程序(参见 COM Interop Through Wine in OSX,从未回答过)不是解决方案,因为该应用程序的规范要求用户机器未在反正。我们只需要假设用户拥有 Excel 运行ning 的许可本地副本,并使用它……这就是我们在 Windows 上一直做的事情,效果很好。
我认为 .NET Core 是答案,但我找不到任何地方明确说明我们可以(或将能够)在 [=35= 时从 C# 访问 Excel 对象库]ning Mac OSX 上的 .NET Core,安装了 Mac 的 Excel 的本地副本。谁能指出我已经讨论过的地方;但如果没有,请告诉我如何从 Microsoft 那里了解这是否在他们的 .NET Core 路线图中?
我从 MSDN 上一个措辞类似的问题中收到了一些有用的反馈。我在.NET Core上也发了一个issueGithub,不过我觉得这个答案已经很清楚了,如下:
- .NET Core 团队可能会被说服在 .NET Core Class 库中添加对 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.
的体系结构限制
我已将此作为答案提交,因为我认为我已经结束了对它的询问,但如果有人认为以上任何内容不正确,请大声疾呼!
谢谢。
我所在的团队目前专门致力于在 C#/.NET 中创建 windows 桌面应用程序,这些应用程序通过 Office COM Interop 与 Microsoft Excel 的本地用户实例交互。我目前负责指定一个新产品,但我被告知该项目不会继续,除非该应用程序可以 运行 on Mac 以及 Windows – 也就是说,我们必须能够生成 Mac 版本的应用程序,该版本可以在 OSX 上本地安装并与 Mac 的 Microsoft Excel 用户实例的对象模型交互。
运行 带有 Parallels、Mono 或 Wine 的应用程序(参见 COM Interop Through Wine in OSX,从未回答过)不是解决方案,因为该应用程序的规范要求用户机器未在反正。我们只需要假设用户拥有 Excel 运行ning 的许可本地副本,并使用它……这就是我们在 Windows 上一直做的事情,效果很好。
我认为 .NET Core 是答案,但我找不到任何地方明确说明我们可以(或将能够)在 [=35= 时从 C# 访问 Excel 对象库]ning Mac OSX 上的 .NET Core,安装了 Mac 的 Excel 的本地副本。谁能指出我已经讨论过的地方;但如果没有,请告诉我如何从 Microsoft 那里了解这是否在他们的 .NET Core 路线图中?
我从 MSDN 上一个措辞类似的问题中收到了一些有用的反馈。我在.NET Core上也发了一个issueGithub,不过我觉得这个答案已经很清楚了,如下:
- .NET Core 团队可能会被说服在 .NET Core Class 库中添加对 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.
的体系结构限制我已将此作为答案提交,因为我认为我已经结束了对它的询问,但如果有人认为以上任何内容不正确,请大声疾呼!
谢谢。