999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Office COM加載項的研究與實現(xiàn)

2010-12-31 00:00:00黎浩宏
電腦知識與技術 2010年21期

摘要:利用Office COM加載項可以補充和擴展Office應用系統(tǒng)的功能,可以將工作中常用的一些功能,設計成用Office COM加載項來實現(xiàn),由Office COM加載項提供的功能,在整個Office應用程序中都能夠使用,從而能夠減少工作量,提高工作效率。本文介紹了Office COM加載項的工作原理以及用VSTO技術創(chuàng)建Office COM加載項的一般過程。

關鍵詞:VSTO;COM加載項;Office

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)21-6077-03

The Research and Implement of Office COM Add-ins

LI Hao-hong

(Department of Information Engineering, Zhejiang Industry Trade Polytechnic, Wenzhou 325003, China)

Abstract: The Office COM add-ins can be used to complement and extend the functions of Office applications, can be used to work in some of the features designed with the Office COM add-ins to achieve. You can use to reduce workload and improve efficiency by the Office COM add-in provides functions in the Office application program. This paper describes the general process of creating Office COM add-ins by using VSTO technology.

Key words: VSTO; COM add-ins; Office

Microsoft Office 系統(tǒng)辦公軟件由于其具有強大的功能和友好的操作界面,能夠滿足日常辦公過程中的大部分功能,所以應用非常廣泛。由于各行各業(yè)對數據和文檔格式的要求千差萬別以及中國的國情特色,在日常辦公過程中,微軟的Office系統(tǒng)軟件不能滿足我們在工作中的所有需求。我們可以在利用Office系統(tǒng)軟件豐富客戶端功能的基礎上,利用VSTO (Visual Studio 2005 Tools for Office)技術結合.NET平臺的強大功能開發(fā)符合我們工作需求的Office COM加載項,將其集成到Office系統(tǒng)當中,實現(xiàn)工作工程中的特殊功能,擴展Office系統(tǒng)軟件的功能,無疑能夠減輕工作人員的負擔,提高他們處理文件的工作效率。

1 VSTO

在VSTO之前,常用的Office開發(fā)工具是Visual Basic for Application(VBA),VBA是一個簡單的開發(fā)環(huán)境,通過COM技術實現(xiàn)對Office程序中豐富的對象模型進行訪問,從而實現(xiàn)對Office的通訊,完成各種任務。VBA的開發(fā)環(huán)境過于簡單,功能有限,并且有VBA開發(fā)的Office應用程序存在安全隱患以及程序部署方面的缺陷,所以要實現(xiàn)企業(yè)級的具有復雜業(yè)務邏輯以及智能部署程序的要求,就非常困難。

VSTO是一套用于創(chuàng)建自定義Office應用程序的Visual Studio工具包。VSTO將Office應用程序(如Word,Excel)文檔轉換為能夠進行編程的.NET類,利用Visual Studio 2005這個強大功能的開發(fā)環(huán)境,借助.NET平臺的豐富類庫,開發(fā)人員可以用Visual Basic 2005或者Visual C#語言進行Office應用程序開發(fā),通過PIA(Primary Interop Assemblies,主互調程序集)訪問Office應用程序中豐富的Office對象模型,實現(xiàn)復雜的Office解決方案。

2 三種Office解決方案模式

Office解決方案一般可以分為三種模式。第一種是Office自動化程序,該模式是獨立于Office的程序,用于控制和自動化處理某個Office應用程序,能夠啟動Office應用程序,為了完成某些任務而對其進行自動化。自動化代碼是在其自己而非Office的進程中進行,并且通過跨進程的方式與正被它自動化的Office進程進行信息交互。第二種模式是Office COM加載項,COM加載項是以.dll形式的程序集出現(xiàn)的,Office應用程序在需要時可以加載和創(chuàng)建它。加載項可以直接在Office應用程序的進程中運行,不需要在獨立于Office應用程序進程的進程中運行,加載項在Office應用程序的整個生命其中都保持加載狀態(tài)。第三種模式時文檔代碼模式,該模式在Office自帶的VBA中得到了廣泛的應用,把編寫的代碼和特定的文檔或模板關聯(lián)在一起。使用VSTO同樣可以把文檔和C#或VB代碼關聯(lián)在一起,在文檔打開的同時,文檔中的代碼能夠對Office應用程序定制。

3 Office COM加載項

Office應用程序可以加載DLL形式程序集的COM加載項,必須在DLL程序集中實現(xiàn)IDTExtensibility2接口的類,將這個類在注冊表中進行注冊后,就可以使用COM加載項。

3.1 IDTExtensibility2接口

IDTExtensibility2接口是開發(fā)Office COM加載項的關鍵技術,所有Office應用程序都使用該接口與COM加載項實現(xiàn)信息交互,IDTExtensibility2接口具有在Office應用程序對象模型中傳遞數據的能力。該接口包含下面5個方法(用Visual Basic.Net描述):

Public Interface IDTExtensibility2

Sub OnConnection (…)

Sub OnAddInsUpdate(…)

Sub OnStartupComplete (...)

Sub OnBeginShutdown (...)

Sub OnDisconnection (...)

End Interface

Office應用程序將COM加載項加載到Office應用程序時,會從前到后依次調用上面的5個方法,我們可以在相應的這5個方法中編寫合適的代碼,即可完成特定的功能。

3.2 創(chuàng)建Office COM加載項

以財務報表中常用將Excel軟件中當前單元格的小寫金額轉化為大寫金額為例,介紹開發(fā)和部署Office COM加載項的步驟。在Visual Studio 2005開發(fā)環(huán)境中,創(chuàng)建一個新項目,類型選擇“其他項目類型”|“擴展性”|“共享的外接程序”,根據向導一步步完成即可。在向導的第2步,只選擇Microsoft Excel為應用程序主機,即只作為Excel軟件的COM加載項。最終解決方案會自動創(chuàng)建兩個項目,包括COM加載項項目和相應的安裝項目。在項目中引用“Microsoft Excel 11.0 Object Library”和“Microsoft Office 11.0 Object Library”兩個類庫,Office COM項目會自動創(chuàng)建一個connect類,該類中包含了IDTExtensibility2接口的5個方法。

在connect類中,定義一個公共靜態(tài)字段str,用于保存當前單元格的值,在IDTExtensibility2接口的相應的方法中編寫代碼。關鍵代碼如下:

imports Extensibility

Imports System.Runtime.InteropServices

Imports Office = Microsoft.Office.Core

Imports Excel = Microsoft.Office.Interop.Excel

……..

Public Class Connect

Implements Extensibility.IDTExtensibility2

Private applicationObject As Excel.Application

Private addInInstance AsOffice. COMAddIn

Public Shared str As String = \"\"

Private WithEvents MyButton AsOffice. CommandBarButton

……

Public Sub OnStartupComplete(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnStartupComplete

Dim commandBars As Office.CommandBars

Dim standardBar As Office.CommandBar

commandBars = Me.applicationObject.CommandBars

standardBar = commandBars(\"Standard\")

If MyButton Is Nothing Then

MyButton = CType(standardBar.Controls.Add(1), _

Office.CommandBarButton)

MyButton.Caption = \"大寫轉換\"

MyButton.Style = Office.MsoButtonStyle.msoButtonCaption

End If

End Sub

Public Sub OnConnection(…..) Implements Extensibility.IDTExtensibility2._

OnConnection

applicationObject = CType(application, Excel.Application)

addInInstance = CType(addInInst, Microsoft.Office.Core.COMAddIn)

End Sub

Private Sub MyButton_Click(…..) Handles MyButton.Click

Dim form As New Form1

str = CType(applicationObject.ActiveCell.Value, String)

form.ShowDialog()

End Sub

End Class

Form1是項目中自定義的窗體,如圖1中窗體對話框所示。在其加載事件中,將connect類的靜態(tài)字段str的值,轉換為大寫金額,顯示在窗體上。在“復制”按鈕的單擊事件中,將大寫金額復制到粘貼板上中。

在該項目運行時,Office COM加載項在Excel軟件運行時,自動加載進了Excel軟件進程中。在標準工具欄中,出現(xiàn)了一個自定義“大寫轉換”按鈕,當單擊按鈕“大寫轉換”時,將Excel中的當前單元格中的小寫金額轉換成大寫金額,顯示在窗體對話框中,單擊“復制”按鈕后,會將大寫金額復制到粘貼板中?;氐紼xcel軟件中,將鼠標定位到“c6”單元格的編輯框中,用常規(guī)的粘貼方法,即可將大寫金額內容粘貼到指定單元格中。

3.3 部署Office COM加載項

在客戶機器上要加載Office COM加載項,必須使客戶機器上有托管程序運行的環(huán)境,在客戶機器上要安裝如下的程序:

1) 安裝.net framework 2.0

2) 安裝Microsoft并安裝SP1或SP2

3) 安裝Office 2003 PIA(主互操作集)

4) 安裝VSTO運行庫

將安裝項目中的文件夾“bin\\debug\\”下的setup.exe文件在客戶機器上安裝運行,Office COM加載項會自動安裝在客戶機器上。在客戶機的注冊表中會注冊Office COM加載項。打開Excel軟件,就能在Excel軟件的標準工具欄上看到添加的按鈕“大寫轉換”,能夠實現(xiàn)在開發(fā)環(huán)境中相同的功能。

4 結束語

由于Office COM加載項是在在Office應用程序的進程中運行的,在整個Office應用程序運行過程中都可用,可以利用VSTO技術借助.NET平臺的強大功能將用戶需求的功能開發(fā)成Office COM加載項,在Office應用程序啟動后,COM加載項即集成到了Office應用程序當中,對用戶而言,就像是Office應用程序的功能擴展,使用起來非常方便。

參考文獻:

[1] 朱強,原小艷.托管Office COM加載項的設計與實現(xiàn)[J].計算機時代,2006,4.

[2] Eric Carter,Eric Lippert.VSTO開發(fā)指南――使用Visual Basic 2005 進行基于Excel,Word,Outlook,InfoPath的Office開發(fā)[M].北京:電子工業(yè)出版社,2008.

[3] 曾凱寧.Excel開發(fā)新技術VSTO_NET在導線測量中的應用[J].山西建筑,2009.

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文

主站蜘蛛池模板: 无码AV日韩一二三区| 伊人蕉久影院| 超碰aⅴ人人做人人爽欧美| 国产爽爽视频| 成人另类稀缺在线观看| 亚洲第一国产综合| 欧美精品在线看| 综合亚洲网| 久久永久视频| 欧美性色综合网| 福利片91| 国产麻豆精品在线观看| 国产精品久久精品| 国产成人精品三级| 97人妻精品专区久久久久| 亚洲天堂免费在线视频| 99热这里都是国产精品| 无码网站免费观看| 国产午夜人做人免费视频| 无码中字出轨中文人妻中文中| 国产亚洲欧美在线专区| 97se亚洲综合不卡 | 欧美精品v| 免费高清毛片| 91视频国产高清| 亚洲成人高清无码| A级毛片高清免费视频就| 亚洲综合婷婷激情| 精品一區二區久久久久久久網站| 无码精品一区二区久久久| 99热亚洲精品6码| 久久免费视频6| 欧美精品1区2区| 尤物特级无码毛片免费| 久久精品最新免费国产成人| 欧美一区国产| 国产乱子伦精品视频| 一区二区三区高清视频国产女人| 国产一区二区福利| 国产毛片不卡| 亚洲va在线观看| 91热爆在线| 超清无码熟妇人妻AV在线绿巨人| 92午夜福利影院一区二区三区| 香蕉久人久人青草青草| 国产91av在线| 国内精自线i品一区202| 亚洲天堂色色人体| 欧美成人怡春院在线激情| 一区二区三区国产| 色偷偷综合网| 成·人免费午夜无码视频在线观看 | 精品国产自在现线看久久| 成人在线欧美| 日韩免费毛片| 国产欧美日韩另类精彩视频| 538精品在线观看| 久久窝窝国产精品午夜看片| 伊人成人在线| 久久福利片| 中文字幕在线看视频一区二区三区| 国产精品手机在线播放| 亚洲无线一二三四区男男| 午夜福利视频一区| 国产高清在线丝袜精品一区| 四虎成人在线视频| 国产超碰一区二区三区| 国产精品亚洲欧美日韩久久| 欧美中文字幕第一页线路一 | 美女视频黄又黄又免费高清| 午夜国产精品视频| 国产日韩精品欧美一区灰| 爆乳熟妇一区二区三区| 婷婷激情亚洲| 国产剧情无码视频在线观看| 国产成人a毛片在线| 色香蕉影院| 亚洲人成在线免费观看| 国产男女免费视频| 日韩中文字幕亚洲无线码| 强奷白丝美女在线观看| 国产精品毛片一区视频播|