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

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

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

前往專題相關軟件相關文章發(fā)表評論 來源:Clever101時間:2010/4/3 23:50:24字體大。A-A+

作者:佚名點擊:902次評論:0次標簽: VS2005

  • 類型:編程工具大。1.43G語言:中文 評分:6.7
  • 標簽:
立即下載

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

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

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

       進行MS office自動化開發(fā),做法基本都是選擇MS office的組件,然后導出你要使用的接口類,這在VC 6.0和VS C++ 2005都是一樣。下面我以一個簡單例子說明一下VS C++ 2005的具體做法,對應的ms office版本是office 2003。


 

      首先用VS 2005新建一個單文檔工程Owner,然后為工程添加一個類,選擇“TypeLib中的MFC類”,具體如下圖:

 

 

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

      基于顧名思義的原則,我們在可用的類型庫中選擇Micro Word 11.0 Object Library<8.3>。這時出現(xiàn)一大堆接口類,我們也不知道該用哪個,干脆一古腦把它們?nèi)珜脒M來,具體如下圖:

 

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

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

#include "CApplication.h"
CApplication app;
 

 

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

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

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) : 參見“Rectangle”的聲明

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

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

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

1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(13448) : error C2146: 語法錯誤: 缺少“;”(在標識符“Fonts”的前面)

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

       這時你可能會大呼:My God!這是怎么回事?抱歉,我也不知道為什么會出現(xiàn)這種問題。我初步估計為VS C++ 2005對MSWORD.olb這個組件支持得并不好,對其它一些組件可以支持。在這里我提供一個解決方案。在CApplication.h中將系統(tǒ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")
 

 

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

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

       我還沒找到辦法去掉這個對話框。

    vs2015
    (39)vs2015
    微軟版本針對多個平臺添加了新的開發(fā)工具,支持開發(fā)全平臺通用應用程序,包括手機以及增強現(xiàn)實等。通過,開發(fā)人員還可以使用或等語言或技術(shù)開發(fā)和安卓平臺應用。針對和服務器開發(fā),你可以使用.技術(shù)以及,或語言。支持編寫所有類型設備的軟件,包括安卓和應用,都將大大提高你的開發(fā)效率。有幾個特性非常有亮點,比如編輯器支持手勢識別工具包增強工具和最新的模擬器。為了進一步豐富的功能,最近微軟還宣布將三大游戲引擎集成進來。...更多>>
    Visual Studio
    (42)Visual Studio
    是什么學是學什么首先是一個軟件集成開發(fā)環(huán)境編譯編輯調(diào)試和。軟件開發(fā)工具的靈魂微軟基礎類庫模板類庫其他的,如,,,..,簡稱或者.,是微軟推出的一款編譯器,將高級語言翻譯為機器語言低級語言的程序。是一個功能強大的可視化軟件開發(fā)工具。自年公司推出.后,隨著其新版本的不斷問世,已成為專業(yè)程序員進行軟件開發(fā)的首選工具。雖然微軟公司推出了..,但它的應用的很大的局限性,只適用于和.。所以實際中,更多的是以.為平臺。.不...更多>>
    • Visual C++(VC6.0)v6.0 SP6 中文大

      02-14 / 157M

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

      10-31 / 29.6M

      推薦理由:用最好用,最經(jīng)典的VC編程工具來形容vc 6.0中文版好不為過,本版本只包含vc++6.0的,沒有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

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

      02-14 / 2.25G

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

      09-08 / 848.2M

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

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

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

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