电竞比分网-中国电竞赛事及体育赛事平台

分享

VSTO 開發(fā)插件的相關(guān)簡介

 實力決定地位 2018-02-27

 

這里,我將會使用Visual Studio 2010 所帶的VSTO(Visual Studio Tools for Office)來開發(fā)這個插件,此外,Excel 2007也是必須的。

ps:插件(AddIn),實際上是一個組件(COM),插件安裝到系統(tǒng)后,會在Office的對應目錄HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins(以WORD為例)上標記此插件的名稱,加載方式等,而在組件注冊的過程中此插件的的執(zhí)行程序的全路徑也會在注冊表中標記,按照插件ID在注冊表中查找,就可以找到這些注冊表項。其實用VS.NET來開發(fā)Office插件,是不需要關(guān)心這些問題的,因為在建立插件項目的同時,會建立一個此插件項目的安裝項目,用此安裝項目就可以自動執(zhí)行在注冊表中添加這些項目。

步驟

1、打開Visual Studio 2010。文件》新建》項目,新建一個項目,建立一個共享的插件,選擇Shared Add-in。

2、確定項目目錄之后,點擊ok,會出現(xiàn)插件生成向?qū)А?/p>


選擇開發(fā)語言,然后點擊Next》


選擇需要嵌入這個插件的應用程序。這里選擇Excel,點擊Next》


在兩個編輯框中輸入插件的名稱和描述,點擊Next》


第一個選項,表示是否在應用程序啟動的時候,啟動這個插件;

第二個選項表示這個插件是所有用戶使用,還是僅僅當前用戶使用。


選中這兩個檢查框,點擊Next》點擊Finish。
最后生成兩個項目,在右邊的Solution Explorer中,一個是插件項目MyAddin1,另一個是插件安裝項目MyAddin1Setup。

3、開始編寫Hello Away!

在插件中需要對Excel對象進行操作,需要首先添加一個引用。


選擇COM頁,在下面的組件中選擇Microsoft Excel 12.0 Object Library。(excel版本號,2003是11.0,2007是12.0,2010是14.0)


添加成功之后,在插件項目中的Connect.cs文件中,添加using

插件項目中的Connect.cs,對Excel的操作就是從這個文件開始的。

其中OnConnection()事件是啟動插件的地方。

  1. public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom)
  2. {
  3. applicationObject = application;
  4. addInInstance = addInInst;
  5. }
我們可以在OnStartComplete()事件中寫代碼,比如說綁定事件。

首先我們要獲得Excel.Application這個類,在OnConnection()中已經(jīng)得到applicationObject,在這里轉(zhuǎn)化一下就可以了。

Excel.Application excelApp=(Excel.Application)applicationObject;

接著,我們就可以綁定excelApp這個對象的事件了,我們可以通過智能感知,很方便的得到excelApp可以使用的事件。

在這里我們綁定SheetSelectionChange,選中它,點擊鼠標。

在這個事件后面添加+=,系統(tǒng)會自動提示要增加的內(nèi)容。


提示出現(xiàn)后,點擊Tab鍵,會自動完成這些代碼


再點擊一次Tab鍵,將需要綁定的事件excelApp_SheetSelectionChange也自動完成。

  1. public void OnStartupComplete(ref System.Array custom)
  2. {
  3. Excel.Application excelApp = (Excel.Application)applicationObject;
  4. excelApp.SheetSelectionChange += new Excel.AppEvents_SheetSelectionChangeEventHandler(excelApp_SheetSelectionChange);
  5. }
  6. void excelApp_SheetSelectionChange(object Sh, Excel.Range Target)
  7. {
  8. throw new NotImplementedException();
  9. }
接著完成excelApp_SheetSelectionChange這個方法就可以。

老規(guī)矩,彈出一個消息框就對了。

要彈出消息框,首先要添加引用,用同樣的方法添加System.Windows.Forms.


然后添加using

  1. using System.Windows.Forms;
在excelApp_SheetSelectionChange中添加代碼
  1. void excelApp_SheetSelectionChange(object Sh, Excel.Range Target)
  2. {
  3. MessageBox.Show(" Hello Away !");
  4. //throw new NotImplementedException();
  5. }
現(xiàn)在就可以編譯這兩個項目了,選中MyAddin1Setup這個項目,點擊鼠標右鍵》重新生成。

等待Rebuild成功之后,就可以Install安裝這個插件了。

安裝好之后,打開Excel體驗一下了。


當點擊另一個單元時,就會彈出一個消息框“ Hello Away ! ”。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多