



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual C+ 中操纵 MS Word 123分享到:新浪微博腾讯微博更多-收藏发布日期:2004-07-09 11:26浏览次数:1181次标签:COM文章评分:5.0操作:下载源文件打印杨老师称号:未设置简介:.文章概要:使用VC编程来操纵Office。你可以实现诸如:Word文件打印、传送数据到Word文档、发送E-MAIL、自动产生表格、Excel数据统计、圆饼图,直方图显示、自动报表生成、播放幻灯、doc,txt,HTML,rtf文件转换、中文简繁体转换、拼音或笔画排序.只要是Office能够实现的功能,都可以在你写的程序中调用。仔细阅读下面的说明,并下载源文件进行参考,你就可以一步一步地掌握这个技术。祝朋友们学习快乐。使用VC编程来操纵Office。你可以实现诸如:Word文件打印、传送数据到Word文档、发送E-MAIL、自动产生表格、Excel数据统计、圆饼图,直方图显示、自动报表生成、播放幻灯、doc,txt,HTML,rtf文件转换、中文简繁体转换、拼音或笔画排序.只要是Office能够实现的功能,都可以在你写的程序中调用。仔细阅读下面的说明,并下载源文件进行参考,你就可以一步一步地掌握这个技术。祝朋友们学习快乐。一、概念Microsoft 的 Office 产品中,都提供了OLE Automation 自动化程序的接口。如果你使用VB,VBA 和 Script 脚本调用 Office 功能的话,其实比使用 VC 调用要简单的多。比如在 WORD 中,调出菜单“工具(T)宏(M)录制新宏(R)”,这时候它开始记录你在 WORD 中任何菜单和键盘的操作,把你的操作过程保存起来,以便再次重复调用。而保存这些操作的记录,其实就是使用了 VBA 程序(Visual Basic for Application)。而我们下面要实现的功能,也同样要参考 VBA 的方法。二、结构层次为了更有逻辑,更有层次地操作 Office,Microsoft 把应用(Application)按逻辑功能划分为如下的树形结构Application(WORD 为例,只列出一部分)Documents(所有的文档) Document(一个文档) .Templates(所有模板) Template(一个模板) .Windows(所有窗口) Window Selection ViewSelection(编辑对象) Font Style Range .只有了解了逻辑层次,我们才能正确的操纵 Office。举例来讲,如果给出一个VBScript语句是:application.ActiveDocument.SaveAs c:abc.doc那么,我们就知道了,这个操作的过程是:第一步,取得Application;第二步,从Application中取得ActiveDocument;第三步,调用 Document 的函数 SaveAs,参数是一个字符串型的文件名。三、基本步骤(1)创建(或打开已有的)一个 MFC 的程序工程(2)Ctrl+W 执行 ClassWizard(本文按照 VC6 操作,例子程序也是在VC6 下编写测试的)(3)Add Class.From a type Library. 在 Office 目录中,找到你想使用的类型库。(我使用的是 Office2000,其Word 的类型库文件,保存在 C:Program FilesMicrosoft OfficeOfficeMSWORD9.OLB)根据你 Office 的版本,可以使用下表列出的类型库文件Office 版本和类型类型库文件Office 版本和类型类型库文件Access 97Msacc8.olbPowerPoint 2000Msppt9.olbJet Database3.5 DAO350.dllWord 2000Msword9.olbBinder 97Msbdr8.olbAccess 2002Msacc.olbExcel 97Excel8.olbExcel 2002Excel.exeGraph 97Graph8.olbGraph 2002Graph.exeOffice 97Mso97.dllOffice 2002MSO.dllOutlook 97Msoutl97.olbOutlook 2002MSOutl.olbPowerPoint 97Msppt8.olbPowerPoint 2002MSPpt.olbWord 97Msword8.olbWord 2002MSWord.olbAccess 2000Msacc9.olbOffice Access 2003Msacc.olbJet Database 3.51DAO360.dllOffice Excel 2003Excel.exeBinder 2000Msbdr9.olbGraph 2003Graph.exeExcel 2000Excel9.olbOffice 2003MSO.dllGraph 2000Graph9.olbOffice Outlook 2003MSOutl.olbOffice 2000Mso9.dllOffice PowerPoint 2003MSPpt.olbOutlook 2000Msoutl9.olbOffice Word 2003MSWord.olb(4)选择类型库文件后,在弹出的对话窗中继续选择要添加的类。具体选择什么类,要看你将来在程序中打算调用什么功能。当然,你也可以不用考虑这么多,用鼠标和Shift键配合,全部选择也可以。(5)初始化COM。方法一,找到App的InitInstance()函数,在其中添加 AfxOleInit()函数的调用;方法二,在需要调用COM功能的地方 CoInitialize(NULL),调用完毕后 CoUninitialize()。(6)在你需要调用 Office 功能函数的 cpp 文件中#include / 为了方便操作 VARIANT 类型变量,使用 CComVariant 模板类#include 头文件.h / 具体的头文件名,是由装载类型库的文件名决定的。(鼠标双点包装类的文件,就可以看到)/ 比如使用 msword9.olb类型库,那么头文件是 msword9.h(7)好了,现在开始写程序吧。另外要说明的是,步骤3和4,其实也可以使用 #import 方式引入类型库。四、实现技巧在书写调用 Office 函数的过程中,最困难的是确定函数的参数,一般情况下,参数都是 VARIANT 类型的变量指针。那么到底具体我们应该怎么写那?推荐两个方法,其一是阅读有关 VBA 的书籍;其二,是使用 Office 中自带的“宏”功能。强烈推荐大家使用第二个方法,把你要完成的功能,在 Office 的操作环境中,用宏录制下来,然后观察分析录制后的函数和参数,就可以在 VC 中使用了。举一个例子:view sourceprint?1.ActiveDocument.SaveAs FileName:=Hello.doc, FileFormat:=wdFormatDocument _2. , LockComments:=False, Password:=, AddToRecentFiles:=True, _3. WritePassword:=, ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _4. SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _5. False以上是在 Word 中录制的一个保存文件的宏,而在 VC 中对应的函数原型为view sourceprint?1. void _Document:SaveAs(VARIANT* FileName, VARIANT* FileFormat, VARIANT* LockComments,2. VARIANT* Password, VARIANT* AddToRecentFiles, VARIANT* WritePassword, 3. VARIANT* ReadOnlyRecommended, VARIANT* EmbedTrueTypeFonts, VARIANT* SaveNativePictureFormat, 4.VARIANT* SaveFormsData, VARIANT* SaveAsAOCELetter)分析对照后,我们就能看出,参数 FileName 是字符串 VARIANT(VT_BSTR),参数 LockComments 是布尔VARIANT(VT_BOOL),等等。参数 FileFormat := wdFormatDocument 是什么类型那?其实这是一个表示保存的时候指定文件类型的常量,而且显然是 DWORD 类型VARIANT(VT_I4)。那么常量的数值又是多少那?很简单,写一个宏,调用函数 MsgBox 显示一下不就都知道啦?!五、步步为营特别提示一:编译执行前,一定要先关闭 KV 实时监视病毒的功能(KV 的程序会干扰我们的调用,瑞星的则没关系)。特别提示二:在例子程序中,为了表现程序的关键部分,没有或很少使用了条件判断。为了实现你程序的健壮性,请自己加上条件判断和异常处理。Step1:如何启动和关闭 WORD,及 VARIANT 的最基本的使用方法Step2:和 Step1 同样功能,用 CComVariant 改进了 VARIANT 的使用方式Step3:在 Step2 的基础上,新建一个 WORD 文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 王者荣耀英雄试题及答案
- 外科休克试题及答案
- 2025年策划合作经营体育培训学校合作协议范本
- 2025年六人策划合作项目经营协议书
- 2025年商店经营承包协议
- 2025年合作伙伴策划协同发展协议
- 2025年教育机构租赁场地使用权协议范本
- 高管责任与风险防控的有效路径
- 2025年建筑工程策划质量监管合作协议
- 知识产权保护的现代化路径
- 10kV配电室施工方案及技术措施
- 2023年专业英语四级真题试卷及答案(二)
- 数据链系统与技术(第2版) 课件 第3、4章 Link-4、Link-11和Link-22数据链;Link-16数据链
- 联合协议书模板
- 猴痘防控工作方案
- 厂房租赁合同2
- 人教版高中生物必修二复习提纲
- 外研版初中英语单词总表(7~9)年级
- 社区矫正人员心理健康讲座模板课件
- 江苏苏州昆山2022-2023学年小升初考试数学试卷含答案
- 小学数学命题设计案例解析课件
评论
0/150
提交评论