西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)編程開(kāi)發(fā)C#.NET → 基于VS 2005環(huán)境的MS office自動(dòng)化開(kāi)發(fā)之熟悉環(huán)境篇

基于VS 2005環(huán)境的MS office自動(dòng)化開(kāi)發(fā)之熟悉環(huán)境篇

前往專題相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:Clever101時(shí)間:2010/4/3 23:50:24字體大小:A-A+

作者:佚名點(diǎn)擊:902次評(píng)論:0次標(biāo)簽: VS2005

  • 類型:編程工具大。1.43G語(yǔ)言:中文 評(píng)分:6.7
  • 標(biāo)簽:
立即下載

 進(jìn)行MS office自動(dòng)化開(kāi)發(fā)最好的工具或許是VBA,但是很多時(shí)候我們的應(yīng)用系統(tǒng)往往和MS office的文件打交道,比如生成word文件和EXCEL報(bào)表等等,因此學(xué)習(xí)一下主流的開(kāi)發(fā)工具關(guān)于MS office自動(dòng)化的知識(shí)還是很有必要的。從今天起,我將推出一些基于VS 2005環(huán)境的MS office自動(dòng)化開(kāi)發(fā)的一些入門(mén)文章。第一篇是關(guān)于熟悉開(kāi)發(fā)環(huán)境。

      這次我使用的是VS C++ 2005。經(jīng)過(guò)一番折騰,我感覺(jué)VS C++ 2005對(duì)MS office自動(dòng)化開(kāi)發(fā)的支持還比不上VC 6.0。我這么說(shuō)是有根據(jù)的,因?yàn)榛赩C 6.0和基于VS 2005環(huán)境的MS office自動(dòng)化開(kāi)發(fā)我都做過(guò)。在VC 6.0,你只需要找到TpyeLib那個(gè)dll文件(或tlb文件、olb文件),選擇你要用的類,然后VC 6.0為你自動(dòng)生成.h文件和.cpp文件,這樣你就可以直接使用其中定義的類了。

        我原以為VS C++ 2005會(huì)沿用VC 6.0的做法。但我發(fā)現(xiàn)VS C++ 2005采用了新的做飯,這也倒沒(méi)什么,問(wèn)題嚴(yán)重的是這種新的方式居然對(duì)MS office自動(dòng)化開(kāi)發(fā)支持比較的糟糕(Word操作部分)。

       進(jìn)行MS office自動(dòng)化開(kāi)發(fā),做法基本都是選擇MS office的組件,然后導(dǎo)出你要使用的接口類,這在VC 6.0和VS C++ 2005都是一樣。下面我以一個(gè)簡(jiǎn)單例子說(shuō)明一下VS C++ 2005的具體做法,對(duì)應(yīng)的ms office版本是office 2003。


 

      首先用VS 2005新建一個(gè)單文檔工程O(píng)wner,然后為工程添加一個(gè)類,選擇“TypeLib中的MFC類”,具體如下圖:

 

 

單擊“添加”按鈕后出現(xiàn)下圖,從下圖我們看出VS 2005比VC 6.0的一點(diǎn)進(jìn)步,這里多了一個(gè)導(dǎo)出來(lái)源:注冊(cè)表。注冊(cè)表的好處是名字直觀,否則比如選擇文件,你要操作word,你還要費(fèi)一番心思去搜索操作word的類到底藏在哪個(gè)dll文件或olb文件、或tlb文件之中呢?

      基于顧名思義的原則,我們?cè)诳捎玫念愋蛶?kù)中選擇Micro Word 11.0 Object Library<8.3>。這時(shí)出現(xiàn)一大堆接口類,我們也不知道該用哪個(gè),干脆一古腦把它們?nèi)珜?dǎo)入進(jìn)來(lái),具體如下圖:

 

    單擊“完成”按鈕后,你可以發(fā)現(xiàn)工程在一時(shí)之間出現(xiàn)了一大堆.h文件:CAddIn.h、CAddIns.h……你可能會(huì)疑惑,對(duì)應(yīng)的cpp文件呢?對(duì)不起,VS 2005并沒(méi)有為你生成。這時(shí)你或許感受到VS 2005和VC 6.0在office自動(dòng)化開(kāi)發(fā)的一點(diǎn)區(qū)別了吧。

 既然一夜之間來(lái)了那么多新丁,先編譯一下吧,OK,編譯通過(guò),這時(shí)你會(huì)說(shuō):VS 2005和VC 6.0的做法也不過(guò)大同小異罷了。先別那么早下結(jié)論,開(kāi)始編碼:

#include "CApplication.h"
CApplication app;
 

 

 先編譯一下,這時(shí)出現(xiàn)了一些你想象不到的編譯錯(cuò)誤:

 1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(1073) : error C2786: “BOOL (__stdcall *)(HDC,int,int,int,int)”: __uuidof 的操作數(shù)無(wú)效

1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(1073) : error C2923: “_com_IIID”:“Rectangle”不是參數(shù)“_Interface”的有效模板類型變量

1>        c:\program files\microsoft visual studio 8\vc\platformsdk\include\wingdi.h(3514) : 參見(jiàn)“Rectangle”的聲明

1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(1073) : error C3203: “_com_IIID”: 未專用化的類模板不能用作模板變量,該變量屬于模板參數(shù)“_IIID”,應(yīng)為real 類型

1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(7113) : warning C4003: “ExitWindows”宏的實(shí)參不足

1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(7113) : error C2059: 語(yǔ)法錯(cuò)誤: “常量”

1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(13448) : error C2146: 語(yǔ)法錯(cuò)誤: 缺少“;”(在標(biāo)識(shí)符“Fonts”的前面)

1>     f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(13448) : error C4430: 缺少類型說(shuō)明符- 假定為int。注意: C++ 不支持默認(rèn)int

       這時(shí)你可能會(huì)大呼:My God!這是怎么回事?抱歉,我也不知道為什么會(huì)出現(xiàn)這種問(wèn)題。我初步估計(jì)為VS C++ 2005對(duì)MSWORD.olb這個(gè)組件支持得并不好,對(duì)其它一些組件可以支持。在這里我提供一個(gè)解決方案。在CApplication.h中將系統(tǒng)自動(dòng)生成的:

#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB" no_namespace

 

注釋掉。然后添加如下代碼:

#import "C:\Program Files\Common Files\Microsoft Shared\Office11\MSO.DLL"
#import "c:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.olb"
#import "c:\Program Files\Microsoft Office\Office11\MSWORD.olb" \
rename("ExitWindows","_ExitWindows")
#import "c:\Program Files\Microsoft Office\Office11\EXCEL.exe" \
    rename("DialogBox","_DialogBox") \
    rename("RGB","_RGB") \
    exclude("IFont","IPicture")
 

 

這樣做之后再選擇“重新生成”重新編譯整個(gè)工程就可以順利使用CApplication類了(注意是重新生成),盡管還有一些警告。

      另外在每次編譯時(shí)不時(shí)出現(xiàn)下面這個(gè)討厭的對(duì)話框:

       我還沒(méi)找到辦法去掉這個(gè)對(duì)話框。

    vs2015
    (39)vs2015
    微軟版本針對(duì)多個(gè)平臺(tái)添加了新的開(kāi)發(fā)工具,支持開(kāi)發(fā)全平臺(tái)通用應(yīng)用程序,包括手機(jī)以及增強(qiáng)現(xiàn)實(shí)等。通過(guò),開(kāi)發(fā)人員還可以使用或等語(yǔ)言或技術(shù)開(kāi)發(fā)和安卓平臺(tái)應(yīng)用。針對(duì)和服務(wù)器開(kāi)發(fā),你可以使用.技術(shù)以及,或語(yǔ)言。支持編寫(xiě)所有類型設(shè)備的軟件,包括安卓和應(yīng)用,都將大大提高你的開(kāi)發(fā)效率。有幾個(gè)特性非常有亮點(diǎn),比如編輯器支持手勢(shì)識(shí)別工具包增強(qiáng)工具和最新的模擬器。為了進(jìn)一步豐富的功能,最近微軟還宣布將三大游戲引擎集成進(jìn)來(lái)。...更多>>
    • Visual Studio 2015 旗艦版官方最新

      11-13 / 4.4M

      推薦理由:微軟已經(jīng)宣布了Visual Studio 2015和.Net 2015,兩者均已于今日開(kāi)放下載。作為在紐約舉辦的Connect大會(huì)主題
    • vs2015社區(qū)版(Visual Studio Commu

      07-21 / 3.53G

      推薦理由:Visual Studio Community 2015是免費(fèi)的,具備所有為Windows、iOS、Android設(shè)備或是云服務(wù)器開(kāi)發(fā)桌面、移動(dòng)、
    • Visual Studio Code mac版1.9.10 官

      02-20 / 51.3M

      推薦理由:微軟VisualStudioCode是一個(gè)全新的開(kāi)發(fā)工具,使用者能以原生方式跨越Windows、Mac、Linux平臺(tái),直接編譯、調(diào)
    • VS編輯器Visual Studio Code1.9.1.

      02-20 / 50.3M

      推薦理由:VisualStudioCode,旨在為所有開(kāi)發(fā)者提供一款專注于代碼本身的免費(fèi)的編輯器。VisualStudioCode的定位還是Ed
    • Visual Studio 2015 跨平臺(tái)開(kāi)發(fā)Xam

      04-05 / 41.7M

      推薦理由:目前 Visual Studio 2015 的跨平臺(tái)應(yīng)用開(kāi)發(fā),是基于 Xamarin,因此你需要安裝 Xamarin 套件(安裝
    • Visual Studio Community 2013官方

      11-13 / 1.6M

      推薦理由:微軟今天宣布Visual Studio Community 2013完全免費(fèi),大小為 7GB,它是為學(xué)生,開(kāi)源貢獻(xiàn)者,小公司,初創(chuàng)公
    Visual Studio
    (42)Visual Studio
    是什么學(xué)是學(xué)什么首先是一個(gè)軟件集成開(kāi)發(fā)環(huán)境編譯編輯調(diào)試和。軟件開(kāi)發(fā)工具的靈魂微軟基礎(chǔ)類庫(kù)模板類庫(kù)其他的,如,,,..,簡(jiǎn)稱或者.,是微軟推出的一款編譯器,將高級(jí)語(yǔ)言翻譯為機(jī)器語(yǔ)言低級(jí)語(yǔ)言的程序。是一個(gè)功能強(qiáng)大的可視化軟件開(kāi)發(fā)工具。自年公司推出.后,隨著其新版本的不斷問(wèn)世,已成為專業(yè)程序員進(jìn)行軟件開(kāi)發(fā)的首選工具。雖然微軟公司推出了..,但它的應(yīng)用的很大的局限性,只適用于和.。所以實(shí)際中,更多的是以.為平臺(tái)。.不...更多>>
    • Visual C++(VC6.0)v6.0 SP6 中文大

      02-14 / 157M

      推薦理由:Visual C++是一個(gè)功能強(qiáng)大的可視化軟件開(kāi)發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本
    • vc 6.0中文版精簡(jiǎn)版

      10-31 / 29.6M

      推薦理由:用最好用,最經(jīng)典的VC編程工具來(lái)形容vc 6.0中文版好不為過(guò),本版本只包含vc++6.0的,沒(méi)有basic , foxpro,以
    • VC++6.0助手v10.0.1233.0 特別版

      11-01 / 5.2M

      推薦理由:Visual Assist X v10.0.1233.0 破解版(Cracked) Visual.Assist.X是一款非常好的Visual Studio .NET 2003、2
    • Microsoft Visual Studio 2005 (V

      05-15 / 1.43G

      推薦理由:簡(jiǎn)體中文正式版本版本號(hào)為8.0.50727.42(RTM.050727-4200)包括的組件:VisualBasic,C#WindowsFormsProjectsW
    • Visual Studio 2010vs2010中文旗艦

      02-14 / 2.25G

      推薦理由:Microsoft Visual Studio 2010 專業(yè)版是一個(gè)集成環(huán)境,它簡(jiǎn)化了有關(guān)創(chuàng)建、調(diào)試和部署應(yīng)用程序的基本任務(wù)。借
    • Visual Studio 2008 SP1 補(bǔ)丁(VS20

      09-08 / 848.2M

      推薦理由:微軟Visual Studio 2008 SP1 簡(jiǎn)體中文版發(fā)布,VS作為微軟旗艦級(jí)的開(kāi)發(fā)集成環(huán)境最新版2008中加入了對(duì)WPF以及

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)