vc中调用word的简单入门

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

首先,需要了解类型库 
  一个类型库是一个提供COM对象功能信息的文件或文件的一部分,而且类型库包含了有关类的信息。注意,类型库并不存储实际的对象,而只是存储有关这些对象的信息。类型库详细说明了一个自动化客户机为对象需要调用的方法和属性的信息,比如说它详细的描述了接受或返回的值。 
  每一个Microsoft Office应用程序都在一个dll文件中提供了多种类型库资源,这种dll文件叫做目标库(*.olb),如word2003的目标库是msword.olb
其次,如何创建自动化客户机
(转载)用VC++创建一个自动化客户机 (以word2003说明)
  The COleDispatchDriver Class 
  vc提供了一个COleDispatchDriver类来处理自动化对象的IDispatch接口,关于COleDispatchDrive类的属性和函数请读者自行查阅类库,这里就不再赘述。 
  1.创建一个新的Dialog-Base MFC AppWizard Exe工程名为"WordAutomation";注意在MFC AppWizard - Step 2 of 4中的Automaiton选项上打上勾
2.在View菜单中,点击ClassWizard,然后进入Automation标签中点击Add Class,选择From A Type Library。找到Microsoft Office 2003类型库msword.olb,选择_Application,_Document,_Documents,Selection四个类,如有其他需要(例如画表也可选择其他的类)。 
这个过程会在工程中创建两个新的文件:msword.h和msword.cpp,这些文件构成了word类型库的所选择的类和类的成员函数。在ClassView视图中查看从word类型库生成的所有的类,然后双击_Application类来查看它的定义,你就会注意到_Application类是来源于COleDispatchDriver。
// _Application wrapper class
class _Application : public COleDispatchDriver
{
   ......
}
  至于这些类和成员函数的功能和用法,我有一个简便的方法,那就是使用word中工具菜单中的宏的录制功能,把你所想要进行的操作先用宏录制下来,然后查看这些宏代码,你就会清楚要使用哪个类,哪些成员函数和成员函数应该带些什么参数了。虽然这些代码都是用VB写的,但你可以很容易的转换成VC++中的代码。
word中选择“工具-宏-录制宏”,可以创建一个宏,然后“工具-宏-宏”写入你录制的宏名,点编辑,就可以看见代码了,hoho.

3. 剩下的就是如何使用了。
如:开始一个新的Microsoft Word 2003实例 
_Application oWordApp;
oWordApp.CreateDispatch("Word.Application", NULL)

如:创建一个新的文档
Documents oDocs;
_Document oDoc;
oDocs = oWordApp.GetDocuments();
oDoc = oDocs.Add(vOpt, vOpt, vOpt, vOpt);
如:把文本添加到word文档
Selection oSel;
oSel = oWordApp.GetSelection();
oSel.TypeText("one");

如:保存文
_Document oActiveDoc; 
oActiveDoc = oWordApp.GetActiveDocument();
oActiveDoc.SaveAs
最后要退出实例:
oWordApp.quit
另外一个比较详细的之一:
-----------------提示:应该是先要导入MSWORD9.OLB-----------

COleVariant vTrue((short)TRUE), 
vFalse((short)FALSE), 
vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); 

//开始一个Microsoft Word实例 
_Application oWordApp; 
if (!oWordApp.CreateDispatch("Word.Application", NULL)) 
{ 
AfxMessageBox("CreateDispatch failed.", MB_OK | MB_SETFOREGROUND); 
return; 
} 

//建立一个新的文档 
Documents oDocs; 
_Document oDoc; 
oDocs = oWordApp.GetDocuments(); 
oDoc = oDocs.Add(vOpt, vOpt); 

//给文档添加文本 
Selection oSel; 
oSel = oWordApp.GetSelection(); 
oSel.TypeText("one"); 
oSel.TypeParagraph(); 
oSel.TypeText("two"); 
oSel.TypeParagraph(); 
oSel.TypeText("three"); 

//保存文档 
_Document oActiveDoc; 
oActiveDoc = oWordApp.GetActiveDocument(); 
oActiveDoc.SaveAs(COleVariant("c://doc1.doc"), 
COleVariant((short)0), 
vFalse, COleVariant(""), vTrue, COleVariant(""), 
vFalse, vFalse, vFalse, vFalse, vFalse); 

//退出WORD 
oWordApp.Quit(vOpt, vOpt, vOpt); 
另外一个比较详细的之二:
#include"msword9.h" 
#include <atlbase.h>
void CFasfcDlg::OnButton1() 
{ 
AfxOleInit();

_Application app; 
COleVariant vTrue((short)TRUE), vFalse((short)FALSE); 
app.CreateDispatch(_T("Word.Application")); 
app.SetVisible(FALSE);
//Create New Doc 
Documents docs=app.GetDocuments(); 
CComVariant tpl(_T("")),Visble,DocType(0),NewTemplate(false); 
docs.Add(&tpl,&NewTemplate,&DocType,&Visble);
//Add Content:Text 
Selection sel=app.GetSelection(); 
sel.TypeText(_T("/t/t/t/t/t第一次玩儿Word/r/n")); 
sel.TypeText(_T("/t/t/t/t/t/t/t/t----------先来一个简单的/r/n")); 
sel.ReleaseDispatch(); 
docs.ReleaseDispatch(); 
app.SetVisible(TRUE); 
app.ReleaseDispatch();
} 

使用VC 6.0实现自动生成Word表格 最近在VC6.0 环境下开发一个管理系统,界面开发花了不少功夫却感觉华而不实,自动生成word表格的功能实现了,倒觉得蛮实用的(1)首先,向你的项目中添加word 2003类型库:方法是在MFC ClassWizard中点击按钮Add Class,选择From a type library,在弹出的浏览对话框中,浏览找到office 2003安装路径下的msword.olb文件,例如:"C:/ 阅读详情

相关推荐

利用VC实现Word预览功能

通过VC实现word文档预览功能,即仅让浏览,不让复制、编辑和保存。 总体思路是:先调用office的ole接口,将word文档转换为pdf;再利用swtools将pdf转换为swf;最后利用VC自带的activeX控件shockwaveflash object(flash.ocx)来播放swf。 转换的过程稍微有一点点延迟,最后的浏览效果还是可以的。

weixin_35986813的博客 2084

希望使用C、C++如何调用windows api来操作office组件,抽取数据和转换,不需要图形界面,不使用mfc下的类库

希望使用C、C++如何调用windows api来操作office组件,抽取数据和转换,不需要图形界面,不使用mfc下的类库

VC读写word文件(RTF文件)

这几天一直在研究VC读写有格式文本文件(RTF文件)的方法,终于动明白一些,下面是我的代码,在VS2005下运行正常,希望能帮助大家解决一点问题,若有书写不周,欢迎各位批评指正 。 void CVCreadwriteRTFDlg::OnBnClickedButton1() { // 变量的声明 COleVariant  vTrue((short)TRUE),         

yuhuimin111的专栏 5345

VC调用WORD(显示,修改,存盘,运行宏)

(1)使用AppWizard创建一个新的MFC AppWizard(EXE)工程,命名为"office"  (2)选择单文档视图(SDI)结构,在第3步中需要选中Container,以提供容器支持,并且选中active document container 其它都为默认(3)在View菜单中,选ClassWizard,选Automation选项卡,选Add Class,选择From a Typ

ZHENG017的专栏 2384

使用MFC操作EXCEL文件

一、加载 1、 在VC6.0里创建一个MFC工程 2、打开MFCClassWizard窗口(查看—>建立类向导),选择Automation,单击AddClass按钮,选择Froma type library...,弹出文件选择对话框,之后定位到C:\Program Files\MicrosoftOffice\OFFICE11\EXCEL.EXE,在生成类中添加所有的对象(其实添加需要的即可

目前打算换一个工作,有招聘windows c++方向的也欢迎联系,北京、济南 最好 5万+

VCOffice自动化开发(三)

  二 EXCEL篇及命名空间说明

透明果冻 4905

VC++中调用word

 在实际应用中,编程者往往喜欢程序能自动生成word说明文档,说明程序运行的状况或运行的结果;或者程序能提取数据库的内容生成word表格,使用户能方便的查看和修改,打印。但是VC++中调用word的确不容易,特别是对word中各种函数的使用,本文以作者的工作经验详细介绍一下如何调用word和进行word表格的填写,有同样需求的编友也可查看一下MSDN中的Automation Microso

ganzi_yy的专栏 1345

VC+++ 操作word

最近完成了一个使用VC++ 操作word生成扫描报告的功能,在这里将过程记录下来,开发环境为visual studio 2008 导入接口 首先在创建的MFC项目中引入word相关组件 右键点击 项目 --> 添加 --> 新类,在弹出的对话框中选择Typelib中的MFC类。 然后在弹出的对话框中选择文件,从文件中导入MSWORD.OLB组件。 这个文件的路径一般在C:\Pro...

Masimaro的专栏 7462

VC利用WORD替换功能打印发票

VC利用WORD替换功能打印发票在用VC开发一项目时,需要打印发票。由于发票的种类比较多,而且有的是已经有文字,有的空白的,还有一部分文字是可变的,动态改变。如果用VC直接控制它的输出,是一件很烦人的事情,而且工作量巨大,因此考虑到officeword文字操作软件有杰出的文字操作功能,并且它有相关的VBA函数用于二次开发。在VC中当然也会提供相应的操作函数,只要电脑安装了word,只需要将其它导

7244

VC 操作Word 2003的简单例子

实现这种功能通常的做法便是调用Office提供的COM操作。一般你要在的office安装目录下找到一个名为“MSWORD.OLB” 的库文件,2003的话一般是放在“C:/program files/office/OFFICE11”这个路径下。找到它以后,你可以将其拷贝到自己的工程目录下,也可以直接使用它的文件路径,这就关系到import里导入该库时的参数。在把代码拷贝到你的工作区以后,可以选

highlandear 3342

vc中操作WORD

 使用VC编程来操纵Office。你可以实现诸如:Word文件打印、传送数据到Word文档、发送E-MAIL、自动产生表格、Excel数据统计、圆饼图,直方图显示、自动报表生成、播放幻灯、doc,txt,HTML,rtf文件转换、中文简繁体转换、拼音或笔画排序......只要是Office能够实现的功能,都可以在你写的程序中调用。仔细阅读下面的说明,并下载源文件进行参考,你就可以一步一步地掌握这个

hurry281的专栏 2697

学习用VC开发WORD插件

本文介绍了使用VC开发Word插件的关键技术,主要包括:1)通过实现_IDTExtensibility2和IRibbonExtensibility接口实现插件基本框架;2)采用两种方式响应Word事件(IDispEventSimpleImpl/IDispEventImpl和直接实现连接点接口);3)配置自动注册脚本确保插件加载。

Zezese的专栏 634

VC调用WORD

VC调用WORD(1)使用AppWizard创建一个新的MFC AppWizard(EXE)工程,命名为"office"  (2)选择单文档视图(SDI)结构,在第3步中需要选中Container,以提供容器支持,并且选中active document container 其它都为默认(

xxxuehao的专栏 2866

MFC VC 操作Excel,word的OLE对象

前几天老板分配了一个任务,背景是用户手动复制excel的一些统计表或者word中的组织结构图或者Visio中的流程图等,不能直接保持原格式粘贴到MFC的RichEdit控件中。用户只能手动把word,excel,visio中的图形以OLE对象的形式插入到一个新的word文件中,然后才能把这个OLE对象拷贝到RichEidt控件中。

hejizhu_tianyi的专栏 3557

OFFICE自动化】如何用VC6.0绘制Excel和Word

如何使用VC6.0来写EXCEL和WORD文件呢?

零昔无浪 1616

VC操纵Word

转自 http://blog.csdn.net/wangji163163/archive/2009/07/02/4315358.aspx 最近有很多朋友问我,VC操纵Word的方法。需要的朋友请往下看。我们操纵Word需要通过类型库中的MFC类。而这些类,应该都是基于一个叫COleDispatchDriver的类。至少我所了解到的都是这样。COleDispatchDriver没有基

冷寒生读书笔记 3963

VC2008 操作调用 Word 控件

<br />原文地址:http://www.5xsoft.com/Article.aspx?id=239<br />现在在网上搜“VC操作word”的信息基本都是vc6的资料,vs2005以后的比较少了,按照老资料的步骤去做最后在编译时会报错的;<br />1.在VS2005中新建一控制台程序,选支持MFC <br /><br />2. Project-> Add Class->MFC Class From Typelib,单选File,找到你的word的类型库(例如我的word安装路径是"D://Prog

agwujiang的专栏 3221

vc操作word简单例子

void CMyDialog::OnBnClickedOk() { if(IDOK!=AfxMessageBox(_T("看好了,就要新建一个文档了"))) return; CApplication app; app.CreateDispatch(_T("Word.Application")); app.put_Visible(TRUE); CDo

bsnry的专栏 1237

vc6调用word打印

1. 打开classview, 选择Automation标签, 点Add Class并选择"From a type library" 浏览并选择你希望自动化的对象库.我要调用word2003, 选的是microsoft office/office11/msword.olb, 简单起见我选了里面所有的类,点ok,然后点ok关闭classview之后可以看到工程里多了msword.h和msword.c

1057
上一篇: MSXML应用总结
下一篇: (非常好的Word操作封装类)VC中进行office编程的-操作word,可以设置文字的样式,新建表格
agwujiang
博客等级 码龄16年 1粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值