在Mac OSX上使用.NET Core进行Office(Excel)COM互操作?

7
我在一家团队工作,目前专注于使用C#/.NET创建Windows桌面应用程序,通过Office COM Interop与本地用户的Microsoft Excel实例进行交互。我现在负责指定一个新产品,但被告知,如果该应用程序无法在Mac和Windows上运行,该项目将无法继续进行,也就是说,我们必须能够生成可在OSX上本地安装并与用户Mac版Microsoft Excel对象模型交互的Mac版本应用程序。
使用Parallels、Mono或Wine运行应用程序(请参见未得到答复的OSX上的Wine COM Interop)不是解决方案,因为应用程序的规范要求不以任何方式修改用户机器,我们只能假设用户有一个已经获得许可的本地Excel副本,并与其配合使用。这就是我们在Windows上一直做的事情,效果很好。
我认为.NET Core是解决方案,但我找不到任何地方明确说明我们是否可以(或将能够)从运行.NET Core的Mac OSX上的C#访问Excel对象库,且已安装了本地的Mac版Excel。有人能告诉我在哪里已经讨论过这个问题吗?如果没有,那么请告诉我如何从Microsoft那里了解.NET Core是否在他们的路线图中。
1个回答

8

我从MSDN上一个类似的问题中得到了一些有用的反馈。我还在.NET Core Github上发布了一个问题,但我认为对于这个问题的答案已经很清楚了,如下:

  • .NET Core团队可能会考虑在.NET Core类库中添加对Office.Interop.Excel命名空间的访问,但仅限于Windows平台。
  • 无法在OSX上为.NET Core执行此操作,因为该环境不适合交换COM对象。
  • 这仅留下两种选项来操作Excel中的对象:嵌入式VBA或Javascript(Office Add-ins)。
  • Office Addins是一个非常好的新解决方案,用于Web驱动的数据导向对象在Excel中 - 它的多平台特性很棒 - 因此它成为Microsoft主要开发的焦点。但是,它不打算与COM相匹配以管理复杂的电子表格,因为这不是它的重点。
  • 这意味着没有使用C#在Mac上管理Excel内部对象的解决方案,就像在Windows上那样,并且似乎也没有任何前景。

底线:非常受欢迎的.NET Core计划看起来像是一个修复程序,但遗憾的是不是这样,因为OSX的架构限制。

我将此提交为答案,因为我认为我已经到达了它的研究尽头,但如果有人认为上述任何内容不正确,请喊出来!

谢谢。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接