|
引言: 因?yàn)楣ぷ鞯脑?,這段時(shí)間一直在看VSTO的相關(guān)的內(nèi)容的,因此希望通過這個(gè)系列來記錄下我學(xué)習(xí)的過程和大家分享Office開發(fā)的相關(guān)知識(shí),希望以后有朋友從事這方面的也希望通過本系列提供點(diǎn)幫助。 本專題將簡單介紹VSTO和VSTO中的一些基本概念進(jìn)行介紹,下面就直接進(jìn)入正題了。
1. VSTO介紹 首先介紹下VSTO的歷史吧,之前都是用VBA來開發(fā)Office解決方案的,后來微軟開發(fā)出了VSTO這個(gè)工具包來創(chuàng)建自定義的Office應(yīng)用程序,使得開發(fā)Office應(yīng)用程序更加簡單,并且用VSTO來開發(fā)office應(yīng)用程序可以使用Visual studio開發(fā)環(huán)境中的眾多功能和CLR提供的內(nèi)存管理,垃圾回收等功能。VSTO到現(xiàn)在有5個(gè)版本的,下面通過一張圖來說明VSTO的發(fā)展過程:
通過上圖簡單介紹下VSTO的發(fā)展歷程的,這里也就不多描述VSTO的歷史了,只是讓大家有個(gè)這樣的認(rèn)識(shí),下面就具體介紹下什么是VSTO。 VSTO就是一個(gè)創(chuàng)建自定義Office應(yīng)用程序的Visual Studio工具包,這個(gè)工具包里面提供了很多類庫來讓我們調(diào)用,然后工具包中類再與Office客戶端進(jìn)行交互。 打開VS2010后可以看到現(xiàn)在支持的一些模版,下面就是VS2010中支持模版的一張圖片:
從圖中可以看出創(chuàng)建的Office應(yīng)用程序大致有三類:插件(Add-in),文檔級(jí)別(如Excel Workbook)和模版(Template)。創(chuàng)建的Add-in和模版應(yīng)用程序即應(yīng)用程序級(jí)別的定制程序,它指的是對(duì)整個(gè)應(yīng)用程序都可用。文檔級(jí)別的應(yīng)用程序指的是程序代碼只關(guān)聯(lián)到特定的文檔二不是整個(gè)應(yīng)用程序,然而需要注意的,文檔級(jí)別的應(yīng)用程序的代碼并不像VBA程序那樣存放在文檔或模版里的,而是存放在項(xiàng)目的程序集中的。 2 主互操作程序集(PIA)的介紹 Office應(yīng)用程序如Word,Excel和Outlook都是用非托管代碼來寫的, 而我們創(chuàng)建的VSTO工程使用的是托管代碼,這時(shí)候就需要使用互操作程序集來與Office應(yīng)用程序里的非托管COM對(duì)象交互,然后主互操作程序集(PIA)指的是官方發(fā)布的互操作程序集,如果電腦中安裝了PIA,當(dāng)你添加對(duì)類庫的引用時(shí),那么Visual Studio會(huì)自動(dòng)加載PIA,微軟為Office應(yīng)用程序提供了PIA,如EXcel PIA就是Microsof.Office.Interop.Excel.dll,其他應(yīng)用程序也類似。當(dāng)安裝了Office產(chǎn)品后,PIA會(huì)自動(dòng)安裝在電腦的GAC目錄里,每當(dāng)創(chuàng)建一個(gè)VSTO解決方案, Visual Studio會(huì)自動(dòng)為該解決方案加載合適的Office PIA引用和其他程序集,具體PIA目錄見下圖:
如果安裝完Office產(chǎn)品后沒有安裝相應(yīng)的PIA到GAC,可以執(zhí)行Office的安裝程序進(jìn)行修復(fù)。
3. 宿主項(xiàng)和宿主控件的介紹 宿主項(xiàng)是表示Office對(duì)象模型入口點(diǎn)的類。應(yīng)用程序外接程序使用Microsoft.Office.Tools.AddIn類為宿主項(xiàng),此宿主項(xiàng)提供對(duì)宿主應(yīng)用程序和成員的對(duì)象模型的訪問,可以通過宿主項(xiàng)添加數(shù)據(jù)綁定的能力和提供額外的事件來擴(kuò)展本地Office文檔。而創(chuàng)建一個(gè)Excel解決方案會(huì)創(chuàng)建4個(gè)Excel宿主項(xiàng):Workbook,Sheet1,Sheet2和Sheet3,如下圖:
宿主項(xiàng)是Word和Excel等設(shè)計(jì)界面,擔(dān)當(dāng)控件容器的作用,就像VBA里把控件添加到UserForm上一樣,我們可以把Windows Form 控件和宿主控件添加到宿主項(xiàng)上,值得注意的是Workbook宿主項(xiàng),它不作為宿主控件的容器,在工作簿宿主項(xiàng)中不能添加控件只能包含組件。 宿主項(xiàng)控件了Office的對(duì)象模型,它是基于本機(jī)Office對(duì)象的,本機(jī)Office對(duì)象使用的是Microsoft.Office.Interop.Word命名控件下定義的類型而宿主項(xiàng)和宿主控件定義在Microsoft.Office.Tools.Word(Excel)等命名控件下的。宿主控件與本機(jī)對(duì)象的功能類似,但是宿主控件擴(kuò)展了本機(jī)對(duì)象,添加了數(shù)據(jù)綁定和事件等功能
4.總結(jié) 到這里本專題要介紹的內(nèi)容已經(jīng)講完了,后面的專題將介紹利用VSTO來創(chuàng)建自定義的Office應(yīng)用程序,如果大家有關(guān)于Office想實(shí)現(xiàn)的功能也可以在下面留言,后面通過學(xué)習(xí)也會(huì)和大家分享大家想要實(shí)現(xiàn)的功能,希望在這里我們一起討論,一起進(jìn)步。
|
|
|