1.VC调用word文档程序怎么写,望详细解答,我一点都不会,希望看完
vc6.0Microsoft Office Word方法/步骤1打开vc6.0,新建一个MFC的基本对话框工程,我这里随便给它命名为1_12点击查看,建立类向导,点击Add Class,选择From a type library。
选择Microsoft Office安装目录下的MSWORD.OLE文件(我的默认路径是C:\Program Files\Microsoft Office\OFFICE11\MSWORD.OLE),打开。弹出一个增加类的界面,按shift全选(在程序设计的过程中,我们会知道哪些类是必要的,这里不管它),OK3在类视图区,会发现增加了很多类。
下面我们首先进行COM组建的初始化,在应用程序的InitInstance函数中增加以下代码:if(CoInitialize(NULL)!=S_OK){AfxMessageBox("初始化COM组件失败!");return FALSE;}4接下来自己新建一个类,用来封装操作Word的API函数。点击插入,新建类,class type选择Generic Class(没有基类的),类名为CMeOffice。
5打开文件视图区,编译头文件MeOffice.h,在其中加入:#include"comdef.h"#include"atlbase.h"#include"msword.h"和public:_Application m_wdApp; Documents m_wdDocs;_Document m_wdDoc;Selection m_wdSel;BOOL CreateApplication(); //创建ApplicationBOOL CreateDocument(); //创建Document文档BOOL WriteText(LPSTR szStr);//向文档中写入数据6编辑MeOffice.cpp文件,加入自定义函数的实现(下面的代码的逻辑其实很好懂、看函数名就基本能明白函数的功能)://这个函数打开一个没有文档的应用程序界面BOOL CMeOffice::CreateApplication(){if(FALSE==m_wdApp.CreateDispatch("Word.Application")){AfxMessageBox("创建Application失败!");return FALSE;}m_wdApp.SetVisible(TRUE); //是否显示return TRUE;}BOOL CMeOffice::CreateDocument(){if(!m_wdApp.m_lpDispatch){AfxMessageBox("Application没有成功创建!");return FALSE;}m_wdDocs.AttachDispatch(m_wdApp.GetDocuments());if(!m_wdApp.m_lpDispatch){AfxMessageBox("AttachDispatch失败");return FALSE;}CComVariant Template("");CComVariant NewTemplate(false),DocumentType(0),Visible;m_wdDocs.Add(&Template,&NewTemplate,&DocumentType,&Visible);//上面的代码足够新建一个文档m_wdDoc=m_wdApp.GetActiveDocument();if(!m_wdDoc.m_lpDispatch){AfxMessageBox("GetActiveDocument失败");return FALSE;}m_wdSel=m_wdApp.GetSelection();if(!m_wdSel.m_lpDispatch){AfxMessageBox("GetSelection失败");return FALSE;}return TRUE;}BOOL CMeOffice::WriteText(LPSTR szStr){m_wdSel.TypeText(szStr);return TRUE;}7好了,类我们已经封装好了。现在我们可以调用封装的函数,实现操作word的功能。
在对话框类中新建一个成员变量 CMeOffice m_meOffice;在对话框初始化函数中加入下面的代码:m_meOffice.CreateApplication();m_meOffice.CreateDocument();m_meOffice.WriteText("我是中国人民的儿子,我深深地爱着我的祖国!");8运行程序,就自动新建了一个Application,里面有一个Document,上面显示“我是中国人民的儿子,我深深地爱着我的祖国!”9主窗口的对话框没有隐藏,看起来很别扭,但我已经受不了了。写这个比想象的困难不少~。
2.关于VC如何操作word2003
下面是从CSDN上摘抄过来的,主要是今天调试VC操作Word2003的时候,网上下载的是操作Word 2000,但是参数已经有一些不同了。
下面的代码可以在2003中运行,记录在这里便于以后复习用。 感谢您使用微软产品。
对于您所提的问题,确实可以使用OLE Automation在VC++中对Word Object Model进行操作。下面这篇知识库文章中给出了如何在VC_++中引入Office TypeLib,并通过程序启动MS Excel.参照这篇文章可以使您建立起程序的框架Q178749 HOWTO: Create Automation Project Using MFC and a Type Library 1.在VC中新建一控制台程序,选支持MFC(当然,你也可以不选择支持MFC的,不过会很麻烦) 2.按CTRL+W调出MFC ClassWizard,Add Class->From a type library,选择你的word的类型库(例如我的是word2003,安装在e盘,我的路径是"e:\edittools\microsoft office\office11\msword.olb"),选择完毕后,在弹出的窗口中选择要让classwizard生成的包装类,在本例中要用到 _Application,Documents,_Document,Range这四个类,选中他们后按OK 3.进入你的main函数所在的cpp文件,加入头文件引用 #include "msword.h" //引用刚才classwizard生成的idispatch包装类 4.加入代码 int _tmain( int argc, TCHAR * argv[], TCHAR * envp[]) { int nRetCode = 0 ; if ( ! AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0 )) { cerr < _t(="" "="" fatal="" error:="" mfc="" initialization="" failed="" "="" )="">< endl;="" nretcode="1" ;="" }="" else="" {="" if="" (coinitialize(null)="" !="S_OK)" {="" afxmessagebox(="" "="" 初始化com支持库失败!="" "="" );="" return="" -="" 1="" ;="" }="" _application="" wordapp;="" documents="" docs;="" _document="" doc;="" range="" arange;="" colevariant="" vtrue((="" short="" )true),="" vfalse((="" short="" )false),="" vopt((="" long="" )disp_e_paramnotfound,="" vt_error);="" wordapp.createdispatch(="" "="" word.application="" "="" ,null);="" wordapp.setvisible(false);="" docs="wordApp.GetDocuments();" doc="docs.Open(COleVariant(" "="" d:\\txt.doc="" "="" ),vfalse,vtrue,vfalse,vopt,vopt,vopt,vopt,vopt,vopt,vopt,vopt,vopt,vopt,vopt,vopt);="" arange="doc.Range(vOpt,vOpt);" afxmessagebox(arange.gettext());="" 这里gettext得到的就是word文件的纯文本了,你可以将其写到txt文件中="" doc.close(vopt,vopt,vopt);="" wordapp.quit(vopt,vopt,vopt);="" couninitialize();="" }="" return="" nretcode;="" }="" 本文来自csdn博客,转载请标明出处:="">
4.如何用c++读取word文档
基本步骤
(1)创建)一个 MFC 的程序工程。
注意:在VC中对WORD进行操作需要在MFC AppWizard - Step 2 of
4中的Automaiton选项上打上勾。
(2)Ctrl+W 执行 ClassWizard(本文按照 VC6 操作,示例程序是在VC6 下编写测试的)。
(3)Add Class。\From a type Library。 在 Office
目录中,找到想使用的类型库。(我使用的是 Office2003,其Word 的类型库文件,保存在 E:\Program
Files\Microsoft Office\Office12\MSWOR.OLB)。
(4)选择类型库文件后,在弹出的对话窗中继续选择要添加的类。具体选择什么类,要看你将来在程序中打算调用什么功能。当然,也可以不用考虑这么多,用鼠标和Shift键配合,全部选择也可以。
(5)初始化COM。方法一,找到App的InitInstance()函数,在其中添加
AfxOleInit()函数的调用;方法二,在需要调用COM功能的地方 CoInitialize(NULL),调用完毕后
CoUninitialize()。
(6)在你需要调用 Office 功能函数的 cpp 文件中
#include
<atlbase.h> //
为了方便操作 VARIANT 类型变量,使用 CComVariant 模板类
#include "文件名.h" //
具体的头文件名,是由装载类型库的文件名决定的,如MSWORD。
示例程序:
//word应用程序
_Application app;
//初始化连接
app.CreateDispatch("word.Application");
Documents doc;
CComVariant
a(_T(strWord)),b(false),c(0),d(true),aa(0),bb(1);
_Document doc1;
doc.AttachDispatch(app.GetDocuments());
doc1.AttachDispatch(doc.Add(&a,&b,&c,&d));
Range range;
//求出文档的所选区域
range=doc1.GetContent();//取出文件内容
str=range.GetText();
m_richedit.SetWindowText(str);
//关闭
app.Quit(&b,&c,&c);
//释放环境
app.ReleaseDispatch();
转载请注明出处51数据库 » vcword.application