2016-11-28 28 views
2

我目前正在開發一個使用Office JavaScript API的工具。不過,我想提供一個自己的Excel函數(類似於=SUM(A1:A5)),它基於C#中的代碼。Office.js中基於C#的excel函數可能使用JavaScript API嗎?

有什麼辦法可以避免從用戶的角度出貨兩個插件?我可以將這兩種技術結合到一個插件嗎?

+0

嗨,感謝所有偉大的建議。但是,實際上我想依賴於新的JS API(它運行在一種瀏覽器中)的優點,但是通過一些額外的功能擴展了Windows機器上的範圍(這顯然在其他系統上不可用,但是JS部分將是)。不幸的是,使用VSTO插件使得在此插件中使用JS代碼更加複雜。我考慮過一個瀏覽器ActiveX元素,但是這帶來了其他複雜性。所以,新API似乎更適合。任何其他想法來處理它? – jonathanNice

回答

-2

我使用ILMerge來組合我的dll。您可以將其添加爲後期構建命令,以便在成功構建時合併它們。

+1

ILMerge用於合併.NET程序集,但在這裏我們處理不同的技術(基於C#的Office加載項和基於JavaScript的Office加載項),因此它不會有任何幫助。 –

1

如果您只針對桌面版的Excel,則可以創建VSTO加載項而不是基於JavaScript的加載項。在此添加中,您可以將自定義函數的代碼包含在VSTO項目中,並確保它們已正確註冊。一種解決方案可能是創建您自己的基於MSI的安裝程序,例如使用Windows Installer XML(WIX)或Nullsoft的NSIS工具。

使用這種「經典」VSTO插件技術,您將無法在Mac上,移動平臺上或Excel Online中的瀏覽器上定位Excel。

+0

對我而言,創建udf(用戶定義函數)的最佳基於桌面的插件解決方案是excel dna https://excel-dna.net –

1

是的,還有一種替代解決方案可以用Dirk建議的VSTO或ExcelDNA創建桌面C#插件。

javascript web加載項只是一個帶有庫的網頁:office.js填補了您的邏輯和辦公室主機應用程序之間的空白。

爲什麼不將輸入傳遞給用C#編寫的API(這可以是服務於加載項的服務器) JavaScript將只在那裏傳遞數據並在電子表格中設置計算結果。

相關問題