c++如何读取word

 我来答
ahcc08
2014-04-13 · 知道合伙人软件行家
ahcc08
知道合伙人软件行家
采纳数:11853 获赞数:51939
拥有丰富的软件开发经验。

向TA提问 私信TA
展开全部

首先建立一个win32控制台程序,注意如图要选择支持MFC选项。

然后选择视图->类向导,点击Add Class;选择Import from Type Library;将Office安装目录下的MSWORD.OLB打开,会出现如下对话框:

将_Application,Documents,_Document,Range四个类导入。

在主函数的else语句中添加如下代码即可实现。

_Application wordApp; //在对象继承结构中是最顶层的对象,可以通过它的方法访问别的工作类型的对象(本例主要是word)
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(filename...),vFalse,vTrue,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);
aRange=doc.Range(vOpt,vOpt);

string str(aRange.GetText());
cout<<str<<endl;
doc.Close(vOpt,vOpt,vOpt);
wordApp.Quit(vOpt,vOpt,vOpt);
CoUninitialize(); //关闭COM对象库,释放资源

Di_Foil
2015-07-28 · TA获得超过548个赞
知道小有建树答主
回答量:199
采纳率:40%
帮助的人:135万
展开全部

基本步骤
(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();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
843258384
2014-04-13
知道答主
回答量:21
采纳率:0%
帮助的人:5.1万
展开全部
freopen ("文件名+扩展名","w",stdout);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式