用VC 操作WORD(1) 綜述

2021-06-16 09:18:07 字數 2931 閱讀 6694

寫在前面:

在學習過程中,我使用的是vs2005+office2003,在其他環境下是否會產生錯誤暫不知曉。

1.用vc++操作word的基本思路

但是,沒過多久,我就發現這個思路不成立,這玩意真心找不到相關資料。所以就採用了現在網上一些已經成熟的技術:匯入typelib類,利用ms提供的com介面來進行操作。而且再後面的實踐中,我發現這樣做其實還是很簡單的。而且相容性還算不錯。我嘗試使用基於office2000下面編寫的**在安裝03或07的機器上執行,簡單**依然可以正確執行,並無什麼bug出現。

2.在自己的工程中引入com介面

這是使用vc++進行word程式設計的第一步,例如vs05:專案——新增類——mfc——typelib中的類。然後再**中選擇檔案,選擇相應的exe或olb檔案即可。例如,我的office安裝在e盤,我要進行word程式設計,那麼就如下圖:

上面兩個紅圈的位置就是我剛才說的東西。下面一節介紹一下介面和生成的類。

3.新增你所需要的類到你的專案中

如上圖所示,在實際程式設計過程中,你需要進行什麼操作就新增哪個介面就ok了,由於存在一些重名的問題,所以vs會自動的在一些類名後面加上0,。下面介紹一些必須新增的或者常用的介面:

documents:代表所有開啟文件的集合。

document:代表乙個開啟的文件,一般都是當前正在操作的文件。

selection:這個介面有兩個可能,1是當前游標選擇的區域,2是當前游標的位置,聯絡一下我們平時實際對word的操作,很容易搞明白。

以上這些是必須要匯入的幾個介面,下面說一些常用操作會使用到的介面。

table和cell:這兩個大類是插入並控制**時候使用的。

4.必須新增的一些內容

ps:以下**新增在stdafx.h中,隨便找個位置就ok~

#define officexp 1

#define office2000 2

// default settings

#define office_ver officexp

#define _m2str(x) #x

#define m2str(x) _m2str(x)

// ignore hard wired default paths if msdll_path is

// defined from the command line

#ifndef msdll_path

// paths to required ms office files.

// make sure these paths are correct for your machine

#pragma message ("make sure the path to mso dll is correct.")

#if office_ver == officexp

#define _msdll_path "c:/program files/common files/microsoft shared/office11/mso.dll"

#elif office_ver == office2000

#define _msdll_path "c:/program files/microsoft office/office/mso9.dll"

#endif

#else

#define _msdll_path m2str(msdll_path)

#endif

//// delete the *.tlh files when changing import qualifiers

#import _msdll_path rename("rgb", "msrgb") rename("documentproperties", "worddocumentproperties") raw_inte***ces_only

#ifdef vbe6ext_path

#import m2str(vbe6ext_path)

#else

#import "c:/program files/common files/microsoft shared/vba/vba6/vbe6ext.olb" raw_inte***ces_only

#endif

// ignore hard wired default paths if mswordolb_path is

// defined from the command line

#ifndef mswordolb_path

#pragma message ("make sure the path to msword olb is correct.")

#if office_ver == officexp

#define _mswordolb_path "e:/program files/microsoft office/office11/msword.olb"

#elif office_ver == office2000

#define _mswordolb_path "c:/program files/microsoft office/office/msword9.olb"

#endif

#else

#define _mswordolb_path m2str(mswordolb_path)

#endif

#import _mswordolb_path rename("exitwindows", "wordexitwindows") rename("findtext", "wordfindtext") raw_inte***ces_only

#pragma warning (default : 4146)

ok,到這裡就可以開始使用vc對word進行操作了,一些具體的操作,留著後面再說吧~

VC中操作word及excel檔案

特此鳴謝資料一 個人感覺這篇講的很到位 特此鳴謝資料二 後面自己想在同乙個程式裡面同時操作word及excel,出現問題,使用命名空間解決問題 此問題特此鳴謝資料一 特此鳴謝資料二 還存在的問題 如果資料庫中記錄過多,則速度會變慢,生成excel檔案速度還可以接受,但是生成word檔案則實在是不能忍...

C 操作Word入門 1

近日,對通過c 程式設計操作word開始感興趣,收集了一些操作word的資料.要操作word就必須先安裝office pias office 2003 primary interop assemblies 安裝好後。在專案中引用micrsoft word 11.0 object library 然後...

用VC操作INI檔案

原文http www.cnblogs.com boneking archive 2008 11 04 1326221.html 三.迴圈寫入多個值,設現有一程式,要將最近使用的幾個檔名儲存下來,具體程式如下 1.寫入 cstring strtemp,strtempa int i int ncount...