MFC操作office通用分析方法

MFC操作office通用分析方法

      Word和Excel都是我们在日常中常常用到的工具,当然大部分的操作都可以手动完成。但是有时候,有的重复性的统计操作是很繁琐的,比如如下的例子:

我们图一的Excel表格存储了很多人员信息,要利用这个Excel做成图二的准考证,如果只有1,2个人还好办,如果有很多人,我们可能就需要利用VB,VC的帮助了。

 

图一

 

 

图二

 

一.MFC操作Office的通用分析方法:

Offcie系列的API函数超级多,而且MSDN上的解释都是VB的,所以为了应对各种各样的操作,我们有一种通用的方法,就是利用宏,宏录制的代码是VB的,但VB的函数和VC的通常都差不多,唯一比较麻烦的是宏的值,但是可以利用MsgBox来查看。下面是一个例子:

比如图二的图,我想要复制多份,

第一步:点击Word的工具->宏->录制新宏,然后进行复制操作。

第二步:点击Word的工具->宏->Visual Basic编辑器,就可以看到刚才录制的宏:

[vb] view plaincopy
 
  1. Selection.MoveDown Unit:=wdLine, Count:=10, Extend:=wdExtend  
  2.   
  3.     Selection.Copy  
  4.   
  5.     Selection.MoveDown Unit:=wdLine, Count:=1  
  6.   
  7.     Selection.TypeParagraph  
  8.   
  9.     Selection.MoveUp Unit:=wdLine, Count:=1  
  10.   
  11.     Selection.PasteAndFormat (wdPasteDefault)  
  12.   
  13.     Selection.PasteAndFormat (wdPasteDefault)  
  14.   
  15. End Sub  


   

这里有很多宏,比如wdLinewdExtendwdPasteDefault,我们可以在VB代码中加入MsgBox wdPasteDefault来看到wdPasteDefault对应的值是多少。

第三步:对照word引入的API函数可以看到对应的函数原型:

[cpp] view plaincopy
 
  1. long MoveDown(VARIANT* Unit, VARIANT* Count, VARIANT* Extend);  
  2.   
  3. void Copy();  
  4.   
  5. void TypeParagraph();  
  6.   
  7. long MoveUp(VARIANT* Unit, VARIANT* Count, VARIANT* Extend);  
  8.   
  9. void PasteAndFormat(long Type);  


 

下面将VB代码改造为VC代码:

[cpp] view plaincopy
 
  1. Selection m_selection = ……(前期初始化)  
  2.   
  3. m_selection.MoveDown(COleVariant(5), COleVariant((short)10),COleVariant((short)1));  
  4.   
  5. m_selection.Copy();  
  6.   
  7. m_wdSel.MoveDown(COleVariant(5), COleVariant((short)1),COleVariant((short)0));  
  8.   
  9. m_wdSel. TypeParagraph();  
  10.   
  11. m_wdSel.MoveUp(COleVariant(5), COleVariant((short)1),COleVariant((short)0));  
  12.   
  13. m_wdSel.PasteAndFormat(0);  
  14.   
  15. 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官方参考:http://msdn.microsoft.com/zh-cn/library/y1xatbkd(v=vs.80).aspx

WPS API参考:http://www.wps.cn/wpsapi/treeshow/tree-ET.htm

Excel操作参考:http://blog.sina.com.cn/s/blog_6c3d32da0100u9dw.html

Word操作参考:http://www.vckbase.com/document/viewdoc/?id=1174

VARIANTCOleVariant _variant_t类型http://blog.csdn.net/whf727/article/details/1883663

原文地址:https://www.cnblogs.com/For-her/p/3499784.html