原文: 初識VSTO Addin開發
這篇部落格将簡單介紹一些VSTO Addin開發的知識。
1. VSTO是什麼?我們可以用VSTO做什麼?
VSTO全稱Visual Studio Tool for Office,是可以讓我們針對現有的Office程式進行功能擴充。在工作或生活中其實我們或多或少用到過VSTO插件,例如安裝有道詞典/Adobe Pro會在Office程式中嵌入插件程式。
2. VSTO開發環境的準備:
(1). 我們的PC上需要安裝有Office(Office 2007及以上版本);
(2). 以Visual Studio 2015為例,在安裝時需要勾選Office Development子產品。如果初始安裝沒有安裝也沒關系,可以在控制台中通過更改Visual Studio的方式進行安裝。成功安裝後,打開Visual Studio 2015-->建立工程-->選擇Office Development子產品:

PS: 這兩者在開發上的差別就是模闆不一樣,别的基本沒有。另外一個Application-Level是針對整個Office Word/Excel/...的定制,而Template-Level是正對Word/Excel/...模闆的定制。
4. 我們以VSTO Word Addin為例,講一下VSTO Word Addin Development中的核心對象。
: 代表了目前選中的區域;
更多内容,請參考:
https://msdn.microsoft.com/en-us/library/kw65a0we(v=vs.90).aspx我們通過建立一個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: 可以參考:
https://code.msdn.microsoft.com/office/VSTO-Deploy-an-Office-fbcc09adVSTO的學習資源
https://msdn.microsoft.com/en-us/library/d2tx7z6d(v=vs.90).aspx https://code.msdn.microsoft.com/office/感謝您的閱讀!