• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    軟件
    軟件
    文章
    搜索

    首頁編程開發C#.NET → 基于VS 2005環境的MS office自動化開發之熟悉環境篇

    基于VS 2005環境的MS office自動化開發之熟悉環境篇

    前往專題相關軟件相關文章發表評論 來源:Clever101時間:2010/4/3 23:50:24字體大?。?em class="fontsize">A-A+

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

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

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

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

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

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


     

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

     

     

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

          基于顧名思義的原則,我們在可用的類型庫中選擇Micro Word 11.0 Object Library<8.3>。這時出現一大堆接口類,我們也不知道該用哪個,干脆一古腦把它們全導入進來,具體如下圖:

     

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

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

    #include "CApplication.h"
    CApplication app;
     

     

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

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

    1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(1073) : error C2923: “_com_IIID”:“Rectangle”不是參數“_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”: 未專用化的類模板不能用作模板變量,該變量屬于模板參數“_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!這是怎么回事?抱歉,我也不知道為什么會出現這種問題。我初步估計為VS C++ 2005對MSWORD.olb這個組件支持得并不好,對其它一些組件可以支持。在這里我提供一個解決方案。在CApplication.h中將系統自動生成的:

    #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類了(注意是重新生成),盡管還有一些警告。

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

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

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

      相關評論

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

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

      熱門評論

      最新評論

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

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>