初識VSTO Addin開發

這篇博客將簡單介紹一些VSTO Addin開發的知識。app

1. VSTO是什麼?咱們能夠用VSTO作什麼?學習

VSTO全稱Visual Studio Tool for Office,是可讓咱們針對現有的Office程序進行功能擴展。在工做或生活中其實咱們或多或少用到過VSTO插件,例如安裝有道詞典/Adobe Pro會在Office程序中嵌入插件程序。spa

2. VSTO開發環境的準備:插件

(1). 咱們的PC上須要安裝有Office(Office 2007及以上版本);3d

(2). 以Visual Studio 2015爲例,在安裝時須要勾選Office Development模塊。若是初始安裝沒有安裝也不要緊,能夠在控制面板中經過更改Visual Studio的方式進行安裝。成功安裝後,打開Visual Studio 2015-->新建工程-->選擇Office Development模塊:code

3. Office 開發的模板,咱們主要看(Application-Level/Template-Level)的模板,這二者的加載方式請看下面的圖示:對象


打開Office解決方案的文檔後,Microsoft Office 應用程序檢查自定義文檔屬性,以肯定是否有與文檔關聯的託管代碼擴展。
blog

PS: 這二者在開發上的區別就是模板不同,別的基本沒有。另一個Application-Level是針對整個Office Word/Excel/...的定製,而Template-Level是正對Word/Excel/...模板的定製。事件

4. 咱們以VSTO Word Addin爲例,講一下VSTO Word Addin Development中的核心對象。ip

Application: 表明了Word程序
 
Document: 表明了一個Word文檔,一個Word Application能夠有1個或者多個Document
 
Bookmark: 表明了在Word文檔中一個連續的區域,它有一個起始位置和結束位置,能夠用一個標識來標記這段連續的區域,這個就是Bookmark
 
Range: 表明了在Word文檔中一個連續的區域,它有一個起始位置和結束位置
 
Selection: 表明了當前選中的區域;
 
更多內容,請參考:
 
咱們經過新建一個Word Addin的工程來初步認識下這幾個對象。
Code:
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            Application.WindowSelectionChange += Application_WindowSelectionChange;

            Word.Document doc = Globals.ThisAddIn.Application.Documents.Open(@"D:\demo.docx", AddToRecentFiles: false);
        }

        /// <summary>
        /// WindowsSelectionChange事件
        /// </summary>
        /// <param name="Sel">選中文本</param>
        private void Application_WindowSelectionChange(Word.Selection Sel)
        {
            if (Sel.Range.End - Sel.Range.Start > 10)
            {
                Word.Range range = Sel.Range;

                System.Diagnostics.Debug.WriteLine("Range Start Position: {0}  Range End Position: {1}", range.Start, range.End);

                range.Bookmarks.Add("MyBookmark");
            }
        }

運行效果: 向Word的Bookmark中插入一個Bookmark:

當咱們編譯Word Addin工程時,會向註冊表中寫入插件的一些信息,例如Description, FriendlyName, LoadBehavior, Mantifest等,此時當咱們單獨打開Word時,插件仍是會運行的。清理一下Visual Studio Word Addin工程便可。

5. 如何部署VSTO插件(以Word爲例),從Visual Studio編譯Word插件時,向註冊表中寫入的信息,咱們能夠利用這些註冊表信息來部署Word插件,

須要注意的兩個值:
LoadBehavior:3 表明了啓動時自動加載。具體請參考: https://msdn.microsoft.com/en-us/library/bb386106.aspx 中Load Behavior
Manifest:指定VSTO插件的具體位置:
PS: 也能夠將插件的信息寫入到註冊表Machine節點下:HKEY_LOCAL_MACHINE--->SOFTWARE---->Microsoft--->Office---->Word--->Addins. 這樣登陸這臺PC的全部用戶均可以使用到這個插件。
 
在部署時,咱們只須要將這些註冊表信息寫入正確的位置便可。固然最簡單的部署方式能夠經過ClickOnce來進行部署。另外也能夠選擇其餘部署方式,例如Windows Installer: 能夠參考:
 
VSTO的學習資源
 
感謝您的閱讀!
相關文章
相關標籤/搜索