青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Visual C++ 中操縱 MS Word 123

使用VC編程來操縱Office。你可以實現(xiàn)諸如:Word文件打印、傳送數(shù)據(jù)到Word文檔、發(fā)送E-MAIL、自動產(chǎn)生表格、Excel數(shù)據(jù)統(tǒng)計、圓餅圖,直方圖顯示、自動報表生成、播放幻燈、doc,txt,HTML,rtf文件轉(zhuǎn)換、中文簡繁體轉(zhuǎn)換、拼音或筆畫排序......只要是Office能夠?qū)崿F(xiàn)的功能,都可以在你寫的程序中調(diào)用。仔細(xì)閱讀下面的說明,并下載源文件進(jìn)行參考,你就可以一步一步地掌握這個技術(shù)。祝朋友們學(xué)習(xí)快樂。

一、概念
  Microsoft 的 Office 產(chǎn)品中,都提供了OLE Automation 自動化程序的接口。如果你使用VB,VBA 和 Script 腳本調(diào)用 Office 功能的話,其實比使用 VC 調(diào)用要簡單的多。比如在 WORD 中,調(diào)出菜單“工具(T)\宏(M)\錄制新宏(R)”,這時候它開始記錄你在 WORD 中任何菜單和鍵盤的操作,把你的操作過程保存起來,以便再次重復(fù)調(diào)用。而保存這些操作的記錄,其實就是使用了 VBA 程序(Visual Basic for Application)。而我們下面要實現(xiàn)的功能,也同樣要參考 VBA 的方法。

二、結(jié)構(gòu)層次
  為了更有邏輯,更有層次地操作 Office,Microsoft 把應(yīng)用(Application)按邏輯功能劃分為如下的樹形結(jié)構(gòu)

Application(WORD 為例,只列出一部分)
  Documents(所有的文檔)
        Document(一個文檔)
            ......
  Templates(所有模板)
        Template(一個模板)
            ......
  Windows(所有窗口)
        Window
        Selection
        View
  Selection(編輯對象)
        Font
        Style
        Range
        ......
  ......

只有了解了邏輯層次,我們才能正確的操縱 Office。舉例來講,如果給出一個VBScript語句是:
      application.ActiveDocument.SaveAs "c:\abc.doc"
那么,我們就知道了,這個操作的過程是:第一步,取得Application;第二步,從Application中取得ActiveDocument;第三步,調(diào)用 Document 的函數(shù) SaveAs,參數(shù)是一個字符串型的文件名。

三、基本步驟
(1)創(chuàng)建(或打開已有的)一個 MFC 的程序工程
(2)Ctrl+W 執(zhí)行 ClassWizard(本文按照 VC6 操作,例子程序也是在VC6 下編寫測試的)
(3)Add Class...\From a type Library... 在 Office 目錄中,找到你想使用的類型庫。(我使用的是 Office2000,其Word 的類型庫文件,保存在 C:\Program Files\Microsoft Office\Office\MSWORD9.OLB)根據(jù)你 Office 的版本,可以使用下表列出的類型庫文件

Office 版本和類型

類型庫文件

Office 版本和類型

類型庫文件

Access 97 Msacc8.olb PowerPoint 2000 Msppt9.olb
Jet Database 3.5 DAO350.dll Word 2000 Msword9.olb
Binder 97 Msbdr8.olb Access 2002 Msacc.olb
Excel 97 Excel8.olb Excel 2002 Excel.exe
Graph 97 Graph8.olb Graph 2002 Graph.exe
Office 97 Mso97.dll Office 2002 MSO.dll
Outlook 97 Msoutl97.olb Outlook 2002 MSOutl.olb
PowerPoint 97 Msppt8.olb PowerPoint 2002 MSPpt.olb
Word 97 Msword8.olb Word 2002 MSWord.olb
Access 2000 Msacc9.olb Office Access 2003 Msacc.olb
Jet Database 3.51 DAO360.dll Office Excel 2003 Excel.exe
Binder 2000 Msbdr9.olb Graph 2003 Graph.exe
Excel 2000 Excel9.olb Office 2003 MSO.dll
Graph 2000 Graph9.olb Office Outlook 2003 MSOutl.olb
Office 2000 Mso9.dll Office PowerPoint 2003 MSPpt.olb
Outlook 2000 Msoutl9.olb Office Word 2003 MSWord.olb

(4)選擇類型庫文件后,在彈出的對話窗中繼續(xù)選擇要添加的類。具體選擇什么類,要看你將來在程序中打算調(diào)用什么功能。當(dāng)然,你也可以不用考慮這么多,用鼠標(biāo)和Shift鍵配合,全部選擇也可以。
(5)初始化COM。方法一,找到App的InitInstance()函數(shù),在其中添加 AfxOleInit()函數(shù)的調(diào)用;方法二,在需要調(diào)用COM功能的地方 CoInitialize(NULL),調(diào)用完畢后 CoUninitialize()。
(6)在你需要調(diào)用 Office 功能函數(shù)的 cpp 文件中
     #include <atlbase.h>  // 為了方便操作 VARIANT 類型變量,使用 CComVariant 模板類
     #include "頭文件.h"   // 具體的頭文件名,是由裝載類型庫的文件名決定的。(鼠標(biāo)雙點包裝類的文件,就可以看到)
                           // 比如使用 msword9.olb類型庫,那么頭文件是 msword9.h
(7)好了,現(xiàn)在開始寫程序吧。另外要說明的是,步驟3和4,其實也可以使用 #import 方式引入類型庫。

四、實現(xiàn)技巧
    在書寫調(diào)用 Office 函數(shù)的過程中,最困難的是確定函數(shù)的參數(shù),一般情況下,參數(shù)都是 VARIANT 類型的變量指針。那么到底具體我們應(yīng)該怎么寫那?推薦兩個方法,其一是閱讀有關(guān) VBA 的書籍;其二,是使用 Office 中自帶的“宏”功能。強(qiáng)烈推薦大家使用第二個方法,把你要完成的功能,在 Office 的操作環(huán)境中,用宏錄制下來,然后觀察分析錄制后的函數(shù)和參數(shù),就可以在 VC 中使用了。舉一個例子:

      ActiveDocument.SaveAs FileName:="Hello.doc", FileFormat:=wdFormatDocument _
, LockComments:=False, Password:="", AddToRecentFiles:=True, _
WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False
以上是在 Word 中錄制的一個保存文件的宏,而在 VC 中對應(yīng)的函數(shù)原型為
      void _Document::SaveAs(VARIANT* FileName, VARIANT* FileFormat, VARIANT* LockComments,
VARIANT* Password, VARIANT* AddToRecentFiles, VARIANT* WritePassword,
VARIANT* ReadOnlyRecommended, VARIANT* EmbedTrueTypeFonts, VARIANT* SaveNativePictureFormat,
VARIANT* SaveFormsData, VARIANT* SaveAsAOCELetter)
分析對照后,我們就能看出,參數(shù) FileName 是字符串 VARIANT(VT_BSTR),參數(shù) LockComments 是布爾VARIANT(VT_BOOL),等等。參數(shù) FileFormat := wdFormatDocument 是什么類型那?其實這是一個表示保存的時候指定文件類型的常量,而且顯然是 DWORD 類型VARIANT(VT_I4)。那么常量的數(shù)值又是多少那?很簡單,寫一個宏,調(diào)用函數(shù) MsgBox 顯示一下不就都知道啦?!

五、步步為營
  特別提示一:編譯執(zhí)行前,一定要先關(guān)閉 KV 實時監(jiān)視病毒的功能(KV 的程序會干擾我們的調(diào)用,瑞星的則沒關(guān)系)。
   特別提示二:在例子程序中,為了表現(xiàn)程序的關(guān)鍵部分,沒有或很少使用了條件判斷。為了實現(xiàn)你程序的健壯性,請自己加上條件判斷和異常處理。

Step1:如何啟動和關(guān)閉 WORD,及 VARIANT 的最基本的使用方法
Step2:和 Step1 同樣功能,用 CComVariant 改進(jìn)了 VARIANT 的使用方式
Step3:在 Step2 的基礎(chǔ)上,新建一個 WORD 文檔,并從程序中傳送一些字符到 WORD
Step4:在 Step3 的基礎(chǔ)上,保存 WORD 文檔
Step5:一個小應(yīng)用舉例,把輸入的漢字按照“筆畫”排序
Step6:一個小應(yīng)用舉例,盜竊正在使用的 WORD 文檔
  以上這6個小程序中,都有詳細(xì)的注釋。大家閱讀后慢慢體會并實驗,你就可以自由地操縱任何一個 Office 啦。

posted on 2008-04-27 15:28 wrh 閱讀(263) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導(dǎo)航

<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

統(tǒng)計

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲美女淫视频| 亚洲欧美国产高清va在线播| 你懂的视频一区二区| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲电影网站| 一区二区三区成人精品| 欧美一区二视频| 欧美~级网站不卡| 99精品国产在热久久| 久久精品动漫| 欧美三级视频在线| 在线成人中文字幕| 亚洲欧美激情诱惑| 欧美好吊妞视频| 午夜精品久久久久久久99水蜜桃| 欧美777四色影视在线| 国产欧美精品一区二区三区介绍 | 中日韩美女免费视频网站在线观看| 亚洲尤物在线| 免费视频一区| 亚洲尤物在线视频观看| 你懂的国产精品| 国产婷婷精品| 亚洲毛片网站| 亚洲综合激情| 欧美电影在线免费观看网站| 亚洲一区制服诱惑| 欧美精品 日韩| 激情欧美丁香| 亚洲免费在线电影| 亚洲精品1区2区| 香蕉尹人综合在线观看| 欧美日韩国产a| 亚洲电影下载| 在线观看精品| 欧美在线播放视频| aa国产精品| 欧美国产日本在线| 影音先锋一区| 久久精品视频va| 亚洲视频高清| 欧美日韩一区二区三| 亚洲精品久久久久久一区二区 | 亚洲国产人成综合网站| 久久成人精品无人区| 国产精品男女猛烈高潮激情| aa级大片欧美三级| 欧美激情在线| 久久免费精品视频| 国内精品国语自产拍在线观看| 午夜精品影院| 亚洲神马久久| 国产精品成人v| 欧美日本亚洲视频| 在线免费一区三区| 久久久亚洲精品一区二区三区 | 欧美日韩一卡二卡| 99成人在线| 亚洲韩日在线| 欧美jizzhd精品欧美喷水| 在线日韩中文字幕| 久久一综合视频| 久久成人羞羞网站| 国产偷国产偷亚洲高清97cao | 午夜精品福利在线| 亚洲一区二区三区四区视频| 国产精品二区在线观看| 国产精品播放| 一区二区三区国产在线观看| 亚洲国产一区二区三区青草影视| 你懂的成人av| 日韩亚洲一区二区| 99视频精品全国免费| 国产精品video| 亚洲主播在线播放| 一区二区日本视频| 国产精品久久九九| 欧美一区二区三区在线| 亚洲男人的天堂在线aⅴ视频| 欧美日韩综合一区| 狠狠色狠色综合曰曰| 久久久久五月天| 久久精品五月| 在线高清一区| 欧美大片一区| 欧美高清成人| 日韩亚洲欧美一区二区三区| 99re66热这里只有精品3直播| 欧美日韩国产探花| 亚洲男人av电影| 先锋影音网一区二区| 国内精品久久久久国产盗摄免费观看完整版| 久久久www| 美女日韩在线中文字幕| 亚洲美女毛片| 亚洲视频www| 国产一区二区三区久久久| 久久精品国产亚洲精品| 国产日本欧美一区二区三区| 久久中文在线| 欧美电影在线观看| 亚洲午夜久久久久久久久电影院| 亚洲午夜久久久久久久久电影院| 国产日韩av一区二区| 免费观看在线综合色| 欧美久久久久久久久久| 午夜精品久久久久久| 久久久精品国产一区二区三区 | 亚洲欧洲一区二区三区久久| 国产精品久久久久9999高清| 久久久伊人欧美| 欧美精品在线观看91| 午夜日韩视频| 蜜桃久久精品乱码一区二区| 亚洲一区二区不卡免费| 久久久精品国产一区二区三区| 9l视频自拍蝌蚪9l视频成人| 亚洲欧美怡红院| 91久久精品美女高潮| 亚洲伊人色欲综合网| 亚洲高清在线| 亚洲一区二区三区午夜| 亚洲国产另类精品专区| 亚洲色在线视频| 亚洲国产成人av| 亚洲永久精品国产| 亚洲国产综合91精品麻豆| 亚洲午夜精品一区二区三区他趣| 亚洲国产精品久久久久秋霞蜜臀| 亚洲精品美女久久7777777| 国产欧美va欧美va香蕉在| 欧美高清在线视频| 国产精品免费观看视频| 欧美成人一区二区在线| 国产精品一卡二| 91久久在线| 国产美女一区二区| 亚洲激情六月丁香| 国产专区精品视频| 中文亚洲字幕| 亚洲精品影院| 久久九九热re6这里有精品| 亚洲综合不卡| 欧美~级网站不卡| 久久久人成影片一区二区三区| 欧美日韩一区三区四区| 欧美高清不卡| 国产一区白浆| 亚洲天堂av在线免费| 亚洲精品久久久蜜桃| 久久精品国产69国产精品亚洲| 亚洲女人天堂成人av在线| 欧美福利一区| 毛片av中文字幕一区二区| 国产毛片精品国产一区二区三区| 亚洲精品美女在线| 亚洲激情二区| 久久人91精品久久久久久不卡| 久久成人18免费观看| 国产精品xxxxx| 亚洲日韩中文字幕在线播放| 亚洲第一精品久久忘忧草社区| 午夜精彩视频在线观看不卡 | 国产精品麻豆成人av电影艾秋| 亚洲精品国产精品乱码不99| 国产免费成人在线视频| 亚洲第一在线| 性欧美暴力猛交69hd| 亚洲天天影视| 欧美二区在线播放| 欧美成人国产| 在线成人h网| 欧美一级二区| 欧美亚洲日本国产| 国产精品草莓在线免费观看| 99v久久综合狠狠综合久久| 日韩亚洲精品在线| 欧美精品久久一区二区| 91久久夜色精品国产九色| 亚洲人成网站777色婷婷| 久久综合99re88久久爱| 免费观看成人| 亚洲高清中文字幕| 久久资源av| 亚洲福利视频三区| 亚洲人成毛片在线播放| 欧美aⅴ99久久黑人专区| 亚洲电影免费观看高清完整版在线观看| 樱桃国产成人精品视频| 久久久久久亚洲综合影院红桃 | 欧美激情亚洲视频| 亚洲国产综合在线看不卡| 日韩视频不卡中文| 欧美片第一页| 亚洲麻豆av| 夜夜嗨av一区二区三区网站四季av| 亚洲自拍啪啪| 亚洲男同1069视频| 欧美国产日韩视频| 亚洲欧洲日本专区|