寫在前面:
在學習過程中,我使用的是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...