ExcelDna是一個使用托管語言開發Excel xll插件的開源框架。由於WPS對其支持不好,導致長期以來開發者一直無法在WPS個人版使用ExcelDna開發的xll插件。
聯系QQ 564955427
經過兩周的研究,我修改了ExcelDna 1.0~1.5的源代碼,編譯了一個支持WPS個人版的開發框架。
主要修復了以下功能:
1、支持WPS個人版白名單,確保插件中的Ribbon和窗格可以正確加載。
2、支持識別Excel和ET
3、支持ExcelCommand菜單
使用這個開發框架開發的xll,開發者只需要將ribbon和窗格的progid注冊到WPS個人版的白名單注冊表里面即可。
白名單在注冊表中的位置:
HKEY_CURRENT_USER\SOFTWARE\kingsoft\Office\ET\AddinsWL
加入RibbonUI和CTP相關的ProgID(示例中是DNAForETDemo.Ribbon和DNAForETDemo.CTPHost)。否則Ribbon菜單和CTP窗格所依托的Com Addin不會被WPS個人版加載。

藍奏雲下載
0.6版 壓縮包中帶修改編譯后的xll庫以及示例源代碼,演示了Ribbon、CTP、UDF、ExcelCommand和RTD的使用方法。
有問題請聯系QQ 564955427
全部代碼已經在碼雲開源。
更新歷史
0.6版
1、如果宿主是WPS,ExcelDnaUtil創建Application時,不關閉工作簿1,避免WPS忙導致鼠標轉圈。問題解釋:ExcelDna在創建Ribbon、CTP、ExcelCommand等操作之前,需要獲取Application。但宿主初次啟動時並沒有准備好Application,所以需要使用xlcNew創建一個工作表,以便后繼可以獲取宿主的Application。這個操作會導致出現一個sheet1或者book1。在Excel2013及以后版本中,我們可以關閉sheet1,這樣用戶新建的工作簿會從Book1開始。而WPS不支持直接創建sheet1,只能創建工作簿1。有人反饋勾選插件之后啟動WPS時會出現工作簿1的鼠標轉圈現象,為了避免這個問題,不再關閉工作簿1。副作用是會導致勾選xll插件之后,WPS啟動時直接進入工作簿1。
2、修復ExcelDna卸載ExcelCommand時的bug。
0.5版
1、增加v1.1.1版release編譯 vs2015+v141_xp
2、增加v1.5.1版release編譯 vs2022+v143+net452
0.41版
1、測試RTD通過
2、增加release編譯
0.3版
1、支持ExcelCommand
0.2版
1、支持ET識別 ExcelDnaUtil.IsET
2、如果宿主是ET,ExcelDnaUtil.ExcelVersion=16.99。獲取WPS真實版本可以使用Application.Version。
3、屏蔽了在開發工具加載項中去除勾選插件時,ExcelDna的彈窗錯誤。
0.1版
支持WPS個人版顯示窗格
