2016-12-15 105 views
0

我爲一個團隊工作,該團隊目前專門用C#/ .NET創建Windows桌面應用程序,並通過Office COM Interop與Microsoft Excel的本地用戶實例進行交互操作。我目前負責指定一款新產品,但我被告知,除非該應用可以在Mac和Windows上運行,否則該項目不會繼續進行 - 也就是說,我們必須能夠生成Mac版本的應用它可以本地安裝在OSX上,並與Mac用戶的Microsoft Excel實例的對象模型進行交互。Office(Excel)使用.NET Core在Mac OSX上進行COM互操作?

使用Parallels,Mono或Wine運行應用程序(請參閱COM Interop Through Wine in OSX,這從未得到解答)並不是一種解決方案,因爲該應用程序的規範要求用​​戶機器沒有任何修改。我們只需假設用戶擁有一個Excel許可的本地副本,並且可以使用這個......這就是我們一直在Windows上完成的工作,它的工作非常棒。

我認爲.NET Core是答案,但我無法找到任何地方,它肯定地表明,我們可以(或將能夠)從C#訪問Excel對象庫時,在Mac OSX上運行.NET Core已安裝Mac的Excel本地副本。任何人都可以指出我已經討論過的地方,或者不是,告訴我如何從微軟那裏瞭解這些是否在.NET Core的路線圖中?

回答

2

我收到了一些有關MSDN類似措辭問題的有用反饋。我已經在.NET Core Github上發佈了一個問題,但我認爲它已經清楚答案是什麼,如下所示:

  • .NET Core團隊可能可以說服他們添加訪問權限.NET Core類庫中的Office.Interop.Excel命名空間,但僅適用於Windows
  • 由於環境爲 不適合交換COM對象,因此無法在OSX上爲.NET Core執行此操作。
  • 這隻留下兩個選項用於在Excel中處理對象 Mac,這兩個選項都已存在:嵌入式VBA或Javascript(Office 加載項)。
  • Office Addins是面向網絡驅動的面向數據的 對象的一個​​偉大的新解決方案 - 它的多平臺性質非常棒 - 所以享受微軟開發 的主要焦點。然而,它並不打算與任何用於管理複雜電子表格的COM的性能 匹配,因爲這不是它的焦點。
  • 這意味着沒有解決方案來管理Excel中的對象,使用C#的Mac ,就像在Windows上一樣,並且 似乎沒有任何可能。

底線:非常受歡迎的.NET Core計劃看起來像是一次修復,但遺憾的是,由於OSX的體系結構限制,

我已經提交這個作爲答案,因爲我認爲我已經到了它的調查線的末尾,但如果有人認爲上述任何不正確,請大聲呼喊!

謝謝。