zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    基于Redis的短链接设计思路
    再谈对协变和逆变的理解(Updated)
    Java基础—ClassLoader的理解
    遇到个小问题,Java泛型真的是鸡肋吗?
    一次失败升级后的反思
    JVM是如何分配和回收内存?有实例!
    一个Java对象到底占用多大内存?
    《深入理解Java虚拟机》读书笔记:垃圾收集器与内存分配策略
    快速掌握RabbitMQ(二)——四种Exchange介绍及代码演示
    快速掌握RabbitMQ(一)——RabbitMQ的基本概念、安装和C#驱动
  • 原文地址:https://www.cnblogs.com/For-her/p/3499784.html
Copyright © 2011-2022 走看看