mfc操作office通用分析方法
序word和excel都是我們在日常中常常用到的工具,當然大部分的操作都可以手動完成。但是有時候,有的重複性的統計操作是很繁瑣的,比如如下的例子:
我們圖一的excel**儲存了很多人員資訊,要利用這個excel做成圖二的准考證,如果只有1,2個人還好辦,如果有很多人,我們可能就需要利用vb,vc的幫助了。
圖一
圖二一.mfc操作office的通用分析方法:
offcie系列的api函式超級多,而且msdn上的解釋都是vb的,所以為了應對各種各樣的操作,我們有一種通用的方法,就是利用巨集,巨集錄製的**是vb的,但vb的函式和vc的通常都差不多,唯一比較麻煩的是巨集的值,但是可以利用msgbox來檢視。下面是乙個例子:
比如圖二的圖,我想要複製多份,
第一步:點選word的工具->巨集->錄製新巨集,然後進行複製操作。
[vb]view plain
copy
selection.movedown unit:=wdline, count:=10, extend:=wdextend
selection.copy
selection.movedown unit:=wdline, count:=1
selection.typeparagraph
selection.moveup unit:=wdline, count:=1
selection.pasteandformat (wdpastedefault)
selection.pasteandformat (wdpastedefault)
endsub
這裡有很多巨集,比如
wdline
,wdextend
,wdpastedefault
,我們可以在
vb**中加入
msgbox wdpastedefault
來看到wdpastedefault
對應的值是多少。
第三步:對照word引入的api函式可以看到對應的函式原型:
[cpp]view plain
copy
long
movedown(variant* unit, variant* count, variant* extend);
void
copy();
void
typeparagraph();
long
moveup(variant* unit, variant* count, variant* extend);
void
pasteandformat(
long
type);
下面將vb**改造為vc**:
[cpp]view plain
copy
selection m_selection = ……(前期初始化)
m_selection.movedown(colevariant(5), colevariant((short
)10),colevariant((
short
)1));
m_selection.copy();
m_wdsel.movedown(colevariant(5), colevariant((short
)1),colevariant((
short
)0));
m_wdsel. typeparagraph();
m_wdsel.moveup(colevariant(5), colevariant((short
)1),colevariant((
short
)0));
m_wdsel.pasteandformat(0);
m_wdsel.pasteandformat(0);
記住,巨集變數用msgbox來檢視。
三.如何使用 office 型別庫
型別庫與 c/c++ 標頭檔案類似。它包含伺服器發布的介面、方法和屬性。您可以使用visual c++ 附帶的 ole/com 物件檢視器 (oleview.exe) 來檢視型別庫。下面列出了microsoft office 95、microsoft office 97、microsoft office 2000 和 microsoft office xp的型別庫檔名:
office
應用程式
型別庫word 95
及更低版本
wb70en32.tlb
excel 95
及更低版本
xl5en32.olb
powerpoint 95
及更低版本
powerpoint.tlb
access 95
及更低版本
msaccess.tlb
binder 95
binder.tlb
schedule+
sp7en32.olb
project
pj4en32.olb
team manager
mstmgr1.olb
word 97
msword8.olb
excel 97
excel8.olb
powerpoint 97
msppt8.olb
access 97
msacc8.olb
binder 97
msbdr8.olb
graph 97
graph8.olb
outlook 97
msoutl8.olb
outlook 98
msoutl85.olb
word 2000
msword9.olb
excel 2000
excel9.olb
powerpoint 2000
msppt9.olb
access 2000
msacc9.olb
outlook 2000
msoutl9.olb
word 2002
msword.olb
excel 2002
excel.olb
powerpoint 2002
msppt.olb
access 2002
msacc.olb
outlook 2002
msoutl.olb
office word 2003
msword.olb
office excel 2003
excel.exe
office powerpoint 2003
msppt.olb
office access 2003
msacc.olb
office outlook 2003
msoutl.olb
三.參考**
msdn官方參考:
wps api參考:
excel操作參考:
word操作參考:
variant
、colevariant
和_variant_t
型別:
mfc建立office辦公軟體
上篇用建立exel來舉了個例子,有不少人問過word,ppt怎麼辦,其實他們和exel大同小異,只不過個別方法和引數不同。word ccomvariant template t 沒有使用word的文件模板 ccomvariant newtemplate false documenttype 0 vi...
VC對Office進行操作
obtguigcomofficeprinter.h if defined afx obtguigcomofficeprinter h 03a0c2d8 dfc8 4b51 8adb 994b86bacb82 included define afx obtguigcomofficeprinter h ...
C 操作Office元件 八
一 設定pdf文件資訊 pdf文件中可以包含一些與文件內容本身無關的資訊,這部分資訊可以包括文件的題目和作者名等一些額外的資訊,便於對pdf文件進行其他處理。本節將介紹設定pdf文件資訊的方法。新增對itextsharp的引用 using system using system.io using i...